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
Last synced: 10 months ago · JSON representation

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
Created over 7 years ago · Last pushed 12 months ago
Metadata Files
Readme License

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.

  1. Install Pipenv, on macOS run brew install pipenv
  2. git clone https://github.com/cruxinformatics/crux-python.git
  3. cd crux-python
  4. pipenv install --dev to install the dependancies
  5. pipenv shell to 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.

  1. brew install pyenv to install
  2. Put 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' >> ~/.bashrc

  3. Open a new Terminal to get an updated shell

  4. 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.0

  5. pyenv global system 3.5.6 3.6.6 3.7.0 to make all the Python versions available

  6. If you already have pipenv virtual environment, remove it with pipenv --rm so it detects the Python versions

  7. pipenv install --dev to install all the dependancies

  8. pipenv shell to 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:

  1. copy corresponding .env.dist file as .env file (if you plan to run client.py, copy client.env.dist as client.env)
  2. fill variables within .env file
  3. launch the script (while being in the tests/regression folder, execute python client.py)

Owner

  • Name: Crux Informatics
  • Login: cruxinformatics
  • Kind: organization
  • Email: info@cruxinformatics.com
  • Location: San Francisco

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

All Time
  • Total Commits: 85
  • Total Committers: 10
  • Avg Commits per committer: 8.5
  • Development Distribution Score (DDS): 0.659
Past Year
  • Commits: 5
  • Committers: 2
  • Avg Commits per committer: 2.5
  • Development Distribution Score (DDS): 0.2
Top Committers
Name Email 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
dependencies (11)

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

  • Versions: 26
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 214 Last month
Rankings
Downloads: 8.4%
Dependent repos count: 9.0%
Dependent packages count: 10.0%
Forks count: 10.9%
Average: 11.2%
Stargazers count: 17.7%
Last synced: 10 months ago

Dependencies

Pipfile pypi
  • 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 *
Pipfile.lock pypi
  • 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
requirements-dev.txt pypi
  • 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
requirements.txt pypi
  • 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
pyproject.toml pypi
setup.py pypi