Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 10 committers (10.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Repository
Crux Python Client
Basic Info
- Host: GitHub
- Owner: cruxinformatics
- License: mit
- Language: Python
- Default Branch: master
- Size: 715 KB
Statistics
- Stars: 10
- Watchers: 20
- Forks: 10
- Open Issues: 12
- Releases: 24
Metadata Files
README.md
Crux Python Client
A Python library for interacting with the Crux platform.
The aim of this module is to be a Pythonic way to use the Crux API reliably. It covers client functionality including scanning subscriptions, getting delivery status, and downloading files.
Python 3.6+ is supported.
See crux-python.cruxinformatics.com for detailed documentation.
Installation
Install a recent version of Python, and a Python dependency and virtual environment manager like pipenv. On macOS run:
bash
brew install python
brew install pipenv
Install crux from PyPI in a virtual environment, and get a shell in that environment:
bash
mkdir -p crux_example
cd crux_example
pipenv install "crux==1.4"
pipenv shell
Getting Started
Create a file, like example.py, and use the crux module:
```python from crux import Crux
conn = Crux() identity = conn.whoami() print("I am", identity.email) ```
Run the script:
bash
HISTCONTROL=ignoreboth
export CRUX_API_KEY='YOUR_API_KEY'
python3 example.py
See the installation and authentication documentation for details.
Development
Python 3.7 is required for development, which can be installed with brew install python. For heavy development work, every supported version of Python must be installed, see the pyenv documentation below.
Pipenv should be used to manage dependancies during development.
- Install Pipenv, on macOS run
brew install pipenv git clone https://github.com/cruxinformatics/crux-python.gitcd crux-pythonpipenv install --devto install the dependanciespipenv shellto get a shell in the virtual environment
Multiple Python versions
To be able to run tests against all supported Python versions, you must have all supported Python versions installed. The test runner will look for binaries called python2.7, python3.5, python3.6, etc. There are multiple ways to install Python versions, we'll document using pyenv.
brew install pyenvto installPut
eval "$(pyenv init -)"towards the end of the shell configuration file (~/.bashrc or ~/.bash_profile), because it manipulates$PATH, for example:bash echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrcOpen a new Terminal to get an updated shell
Install required/missing Python versions (this assumes you have Python 2.7 already installed, otherwise install it too):
bash pyenv install 3.5.6 pyenv install 3.6.6 pyenv install 3.7.0pyenv global system 3.5.6 3.6.6 3.7.0to make all the Python versions availableIf you already have pipenv virtual environment, remove it with
pipenv --rmso it detects the Python versionspipenv install --devto install all the dependanciespipenv shellto get a shell in the virtual environment
Running tests
We use Nox to automate running tests, and use make to automate running some commands. These commands should be run within a shell created with pipenv shell.
```bash
Run all tests: lint, unit, format_check
make test
Or
nox
Run only lint checks
make lint
Or
nox -s lint
Run unit tests against all available Python versions
make unit
Or
nox -s unit
Run integration tests agains all available Python versions
export CRUXAPIKEY="12345" export CRUXAPIHOST="https://api.example.com" make integration
Or
export CRUXAPIKEY="12345" export CRUXAPIHOST="https://api.example.com" nox --s integration
Check formatting
make format_check
Or
nox -s format_check
List all commands available
make
Or
nox -l
Run unit test only against Python 3.7
nox -s unit-3.7
Reformat code
make format
Generate Sphinx HTML documentation
make docs ```
Running test scripts
Manual testing scripts could be found at tests/regression.
In order to run one, i.e. client.py, follow the steps:
- copy corresponding
.env.distfile as.envfile (if you plan to runclient.py, copyclient.env.distasclient.env) - fill variables within
.envfile - launch the script (while being in the
tests/regressionfolder, executepython client.py)
Owner
- Name: Crux Informatics
- Login: cruxinformatics
- Kind: organization
- Email: info@cruxinformatics.com
- Location: San Francisco
- Website: https://www.cruxdata.com
- Repositories: 6
- Profile: https://github.com/cruxinformatics
GitHub Events
Total
- Release event: 1
- Watch event: 1
- Delete event: 1
- Push event: 3
- Pull request review event: 2
- Pull request event: 5
- Create event: 2
Last Year
- Release event: 1
- Watch event: 1
- Delete event: 1
- Push event: 3
- Pull request review event: 2
- Pull request event: 5
- Create event: 2
Committers
Last synced: over 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Anshul Patel | 4****h | 29 |
| stu-speed | 5****d | 24 |
| spmistry | s****y@c****m | 8 |
| Anton Cohen | a****n@c****m | 8 |
| Anton Cohen | a****n@a****m | 8 |
| crux-matthijsk | 6****k | 4 |
| syberry-aotyutsky | 5****y | 1 |
| Stuart Lai | s****i@C****l | 1 |
| Crux Python Open Source | p****e@c****m | 1 |
| Tom Burnett | t****t@c****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 12 months ago
All Time
- Total issues: 1
- Total pull requests: 99
- Average time to close issues: N/A
- Average time to close pull requests: 28 days
- Total issue authors: 1
- Total pull request authors: 10
- Average comments per issue: 2.0
- Average comments per pull request: 0.3
- Merged pull requests: 84
- Bot issues: 0
- Bot pull requests: 11
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: about 5 hours
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- suresh-naik-tfs (1)
Pull Request Authors
- anshul-patel-infostretch (30)
- stu-speed (27)
- antoncohen (16)
- dependabot[bot] (11)
- spmistry (8)
- crux-matthijsk (3)
- petropolis10 (1)
- tlbjr (1)
- syberry-aotyutsky (1)
- lifeofzi (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 214 last-month
- Total dependent packages: 0
- Total dependent repositories: 3
- Total versions: 26
- Total maintainers: 4
pypi.org: crux
Crux Informatics API client library
- Homepage: https://github.com/cruxinformatics/crux-python
- Documentation: https://crux.readthedocs.io/
- License: MIT
-
Latest release: 0.0.22
published over 5 years ago
Rankings
Maintainers (4)
Dependencies
- black * develop
- flake8 * develop
- flake8-import-order * develop
- mypy * develop
- nox * develop
- pylint * develop
- pytest * develop
- recommonmark * develop
- setuptools * develop
- sphinx <3.0.0 develop
- sphinxcontrib-apidoc * develop
- twine * develop
- wheel * develop
- enum34 *
- google-resumable-media *
- python-dateutil *
- typing *
- alabaster ==0.7.12 develop
- appdirs ==1.4.4 develop
- argcomplete ==1.11.1 develop
- astroid ==2.4.2 develop
- attrs ==19.3.0 develop
- babel ==2.8.0 develop
- black ==19.10b0 develop
- bleach ==3.1.5 develop
- certifi ==2020.4.5.2 develop
- chardet ==3.0.4 develop
- click ==7.1.2 develop
- colorlog ==4.1.0 develop
- commonmark ==0.9.1 develop
- distlib ==0.3.0 develop
- docutils ==0.16 develop
- filelock ==3.0.12 develop
- flake8 ==3.8.3 develop
- flake8-import-order ==0.18.1 develop
- idna ==2.9 develop
- imagesize ==1.2.0 develop
- importlib-metadata ==1.6.1 develop
- isort ==4.3.21 develop
- jinja2 ==2.11.2 develop
- keyring ==21.2.1 develop
- lazy-object-proxy ==1.4.3 develop
- markupsafe ==1.1.1 develop
- mccabe ==0.6.1 develop
- more-itertools ==8.4.0 develop
- mypy ==0.780 develop
- mypy-extensions ==0.4.3 develop
- nox ==2020.5.24 develop
- packaging ==20.4 develop
- pathspec ==0.8.0 develop
- pbr ==5.4.5 develop
- pkginfo ==1.5.0.1 develop
- pluggy ==0.13.1 develop
- py ==1.8.2 develop
- pycodestyle ==2.6.0 develop
- pyflakes ==2.2.0 develop
- pygments ==2.6.1 develop
- pylint ==2.5.3 develop
- pyparsing ==2.4.7 develop
- pytest ==5.4.3 develop
- pytz ==2020.1 develop
- readme-renderer ==26.0 develop
- recommonmark ==0.6.0 develop
- regex ==2020.6.8 develop
- requests ==2.24.0 develop
- requests-toolbelt ==0.9.1 develop
- six ==1.15.0 develop
- snowballstemmer ==2.0.0 develop
- sphinx ==2.4.4 develop
- sphinxcontrib-apidoc ==0.3.0 develop
- sphinxcontrib-applehelp ==1.0.2 develop
- sphinxcontrib-devhelp ==1.0.2 develop
- sphinxcontrib-htmlhelp ==1.0.3 develop
- sphinxcontrib-jsmath ==1.0.1 develop
- sphinxcontrib-qthelp ==1.0.3 develop
- sphinxcontrib-serializinghtml ==1.1.4 develop
- toml ==0.10.1 develop
- tqdm ==4.46.1 develop
- twine ==3.1.1 develop
- typed-ast ==1.4.1 develop
- typing-extensions ==3.7.4.2 develop
- urllib3 ==1.25.9 develop
- virtualenv ==20.0.23 develop
- wcwidth ==0.2.4 develop
- webencodings ==0.5.1 develop
- wheel ==0.34.2 develop
- wrapt ==1.12.1 develop
- zipp ==3.1.0 develop
- certifi ==2020.4.5.2
- chardet ==3.0.4
- enum34 ==1.1.10
- google-resumable-media ==0.5.1
- idna ==2.9
- python-dateutil ==2.8.1
- requests ==2.24.0
- six ==1.15.0
- typing ==3.7.4.1
- urllib3 ==1.25.9
- alabaster ==0.7.12 development
- appdirs ==1.4.4 development
- argcomplete ==1.11.1 development
- astroid ==2.4.2 development
- attrs ==19.3.0 development
- babel ==2.8.0 development
- black ==19.10b0 development
- bleach ==3.1.5 development
- certifi ==2020.4.5.2 development
- chardet ==3.0.4 development
- click ==7.1.2 development
- colorlog ==4.1.0 development
- commonmark ==0.9.1 development
- distlib ==0.3.0 development
- docutils ==0.16 development
- enum34 ==1.1.10 development
- filelock ==3.0.12 development
- flake8 ==3.8.3 development
- flake8-import-order ==0.18.1 development
- google-resumable-media ==0.5.1 development
- idna ==2.9 development
- imagesize ==1.2.0 development
- importlib-metadata ==1.6.1 development
- isort ==4.3.21 development
- jinja2 ==2.11.2 development
- keyring ==21.2.1 development
- lazy-object-proxy ==1.4.3 development
- markupsafe ==1.1.1 development
- mccabe ==0.6.1 development
- more-itertools ==8.4.0 development
- mypy ==0.780 development
- mypy-extensions ==0.4.3 development
- nox ==2020.5.24 development
- packaging ==20.4 development
- pathspec ==0.8.0 development
- pbr ==5.4.5 development
- pkginfo ==1.5.0.1 development
- pluggy ==0.13.1 development
- py ==1.8.2 development
- pycodestyle ==2.6.0 development
- pyflakes ==2.2.0 development
- pygments ==2.6.1 development
- pylint ==2.5.3 development
- pyparsing ==2.4.7 development
- pytest ==5.4.3 development
- python-dateutil ==2.8.1 development
- pytz ==2020.1 development
- readme-renderer ==26.0 development
- recommonmark ==0.6.0 development
- regex ==2020.6.8 development
- requests ==2.24.0 development
- requests-toolbelt ==0.9.1 development
- six ==1.15.0 development
- snowballstemmer ==2.0.0 development
- sphinx ==2.4.4 development
- sphinxcontrib-apidoc ==0.3.0 development
- sphinxcontrib-applehelp ==1.0.2 development
- sphinxcontrib-devhelp ==1.0.2 development
- sphinxcontrib-htmlhelp ==1.0.3 development
- sphinxcontrib-jsmath ==1.0.1 development
- sphinxcontrib-qthelp ==1.0.3 development
- sphinxcontrib-serializinghtml ==1.1.4 development
- toml ==0.10.1 development
- tqdm ==4.46.1 development
- twine ==3.1.1 development
- typed-ast ==1.4.1 development
- typing ==3.7.4.1 development
- typing-extensions ==3.7.4.2 development
- urllib3 ==1.25.9 development
- virtualenv ==20.0.23 development
- wcwidth ==0.2.4 development
- webencodings ==0.5.1 development
- wheel ==0.34.2 development
- wrapt ==1.12.1 development
- zipp ==3.1.0 development
- certifi ==2020.4.5.2
- chardet ==3.0.4
- enum34 ==1.1.10
- google-resumable-media ==0.5.1
- idna ==2.9
- python-dateutil ==2.8.1
- requests ==2.24.0
- six ==1.15.0
- typing ==3.7.4.1
- urllib3 ==1.25.9