crush
crush is a library to control placement in a hierarchy
Home page : http://http://libcrush.org/main/python-crush
Documentation : http://crush.readthedocs.org/
GNU/Linux Installation
pip install crush
Other Installation
When using pip versions lower than 8.1 or other operating systems, compilation is necessary and packages must be installed first.
apt-get install -y gcc g++ python-pip python-all-dev libpython3-all-dev cmake libboost-all-dev libatomic-ops-dev
dnf / yum / zypper install -y gcc gcc-c++ python-pip python-devel python3-devel cmake make boost-devel libatomic_ops-devel
pip install crush
Hacking
Get the code:
git clone http://libcrush.org/main/python-crush.git cd python-crush
Set up the development environment:
deactivate || true ; source bootstrap
Run the tests:
deactivate || true ; bash run-tests.sh
Sync the libcrush submodule:
git submodule update --remote libcrush
Run a single test:
tox -e py27 -- -s -k test_one tests/test_crush.py
Check the documentation:
python setup.py build_sphinx firefox build/html/index.html
Update requirements
rm -fr virtualenv virtualenv virtualenv source virtualenv/bin/activate # update some module in requirements.txt tox # if that works pip install -r requirements.txt pip freeze -r requirements.txt > new-requirements.txt .tox/py3/bin/pip freeze -r requirements-dev.txt > new-requirements-dev.txt diff <(.tox/py27/bin/pip freeze -r requirements-dev.txt) new-requirements-dev.txt # all lines after the first “were added by pip freeze” are indirect dependencies remove pkg-resources==0.0.0 https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
Release management
Prepare a new version
git checkout master ; git pull
version=1.0.0 ; perl -pi -e “s/^version.*/version = $version/” setup.cfg ; for i in 1 2 ; do python setup.py sdist ; amend=$(git log -1 –oneline | grep –quiet “version $version” && echo –amend) ; git commit $amend -m “version $version” ChangeLog setup.cfg ; git tag -a -f -m “version $version” $version ; done
Publish a new version
docker build –tag manylinux manylinux
docker run –rm -v $(pwd):/io manylinux /io/manylinux/build-wheels.sh OR docker run –rm -v $(pwd):/io manylinux env PYBINS=/opt/python/cp27-cp27mu/bin /io/manylinux/build-wheels.sh
sudo chown -R $(id -u) wheelhouse/
twine upload –sign wheelhouse/crush
rm -fr dist
python setup.py sdist
twine upload –sign dist/*.tar.gz
git push ; git push –tags
pypi maintenance
trim old versions at https://pypi.python.org/pypi/crush
Release files for crush 1.0.35
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| crush-1.0.35.tar.gz | 352.1 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| crush-1.0.35-cp36-cp36m-manylinux1_x86_64.whl | CPython 3.6 | CPython 3.6 pymalloc | Linux glibc 2.5+ x86-64 | Details |
| crush-1.0.35-cp35-cp35m-manylinux1_x86_64.whl | CPython 3.5 | CPython 3.5 pymalloc | Linux glibc 2.5+ x86-64 | Details |
| crush-1.0.35-cp34-cp34m-manylinux1_x86_64.whl | CPython 3.4 | CPython 3.4 pymalloc | Linux glibc 2.5+ x86-64 | Details |
| crush-1.0.35-cp27-cp27mu-manylinux1_x86_64.whl | CPython 2.7 | CPython 2.7 pymalloc wide-unicode | Linux glibc 2.5+ x86-64 | Details |
Total release size:10.6 MB
Release files / crush-1.0.35.tar.gz
| Download URL | crush-1.0.35.tar.gz |
|---|---|
| Size | 352.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a0cfb6166965a9cf19d479a14a2909e02af67775772773eb91ab3089b8e2e759
|
|
BLAKE2b-256 checksum How to use checksums |
b87b2fd699893193eec99cbcf12e16c6199c6f116e71cea17d1c83f3d715757f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / crush-1.0.35-cp36-cp36m-manylinux1_x86_64.whl
| Download URL | crush-1.0.35-cp36-cp36m-manylinux1_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
d14f2751cdb7003183d99599f06aaf7c3d235e55e031288da8a6f777aa615d31
|
|
BLAKE2b-256 checksum How to use checksums |
89db7d04576ec1f49468b0852435d9fc77b6892b20503efdd6576c41e45c7b5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / crush-1.0.35-cp35-cp35m-manylinux1_x86_64.whl
| Download URL | crush-1.0.35-cp35-cp35m-manylinux1_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
4e45826c1ca092ed24e77be6450305ff25e8cdc9da8f389691905677e1c20a45
|
|
BLAKE2b-256 checksum How to use checksums |
7dc05937d8905c1a87b28352bcf64ccd12199993f53a6938f1c6de75e6699453
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / crush-1.0.35-cp34-cp34m-manylinux1_x86_64.whl
| Download URL | crush-1.0.35-cp34-cp34m-manylinux1_x86_64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
857f3d981f4bc3f27ddfbd2dbfdda45c5beef80447516d577db7b8fd14afd1b1
|
|
BLAKE2b-256 checksum How to use checksums |
7daba7df0516e0a80050d94e69748e766b541a59dfdd6e7b4a62ca62cc145203
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / crush-1.0.35-cp27-cp27mu-manylinux1_x86_64.whl
| Download URL | crush-1.0.35-cp27-cp27mu-manylinux1_x86_64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 2.7 CPython 2.7 pymalloc wide-unicode Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
51ad44682fad5504982038ad5c2e1335963d1c3e00adf2a998cc851d6d08ace1
|
|
BLAKE2b-256 checksum How to use checksums |
5958248740d1e1fa55a3685d9f2824face07d72858c3c89be75278d4a0cbf0c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |