Python Wrapper of the Julia Runtime
Project description
Jl2Py Placeholder Package
Build
python3 -m venv build_env
source build_env/bin/activate
pip install --upgrade pip
pip install build
python -m build
Inspect distributions
Source distribution
cd dist
tar -xvf *.tar.gz
Binary distribution
cd dist
unzip *.whl
Tear down build and build environment
deactivate
rm -rf dist src/pypiccolo.egg-info build_env
Push
Manual publication
TODO
Automated publication (via .pypirc)
mkdir -p path/to/registries/testpypi
touch path/to/registries/testpypi/.pypirc
chmod 600 path/to/registries/testpypi/.pypirc
echo "\
[distutils]\n\
index-servers = testpypi\n\
" >> path/to/registries/testpypi/.pypirc
echo "\
[testpypi]\n\
username = __token__\n\
password = ${TOKEN}\n\
" >> path/to/registries/testpypi/.pypirc
python3 -m venv push_env
source push_env/bin/activate
pip install --upgrade pip
pip install twine
HOME=path/to/registries/testpypi twine upload --repository=testpypi dist/*
deactivate
rm -rf push_env
Automated publication (via CI/CD)
TODO
Note
- Unfortunately, public Python version identifiers are not fully compatible with semantic versioning identifiers (see https://packaging.python.org/en/latest/specifications/version-specifiers/), although they are compatible with the
X.Y.Znotation of semantic versioning for major/minor/patch version numbers, and there exists an analogous notion of release candidates.
Pull
python3 -m venv pull_env
source pull_env/bin/activate
pip install --upgrade pip
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ pypiccolo==0.0.1a1.dev1
deactivate
rm -rf pull_env
Setuptools usage
Notes on package discovery, package data, and runtime configuration
-
Setuptools offers a variety of means of discovering and/or specifying packages and modules to be included in the distribution (https://setuptools.pypa.io/en/latest/userguide/package_discovery.html). While setuptools offers means of implicitly discovering package layout (flat- vs. src-layout), and of explicitly specifying packages to be included, the means chosen by the present project is to explicitly specify package layout (i.e. using
package-dirto specify src-layout), while not explicitly specifying packages to be included (i.e. not usingpackage, in order to retain flexibility). -
Setuptools also offers several means of specifying data files to be included/excluded from the distribution (https://setuptools.pypa.io/en/latest/userguide/datafiles.html). Crucially, data files are meant to be read-only; it is recommended that shared and/or writable data files be installed outside the package directory in an appropriate location.
-
Source distributions also include a number of files by default, including files matching
test[s]/test*.py, license files (unless otherwise specified vialicense-files),pyproject.toml, files matchingsetup.{cfg,py}, README files, andMANIFEST.in, unless otherwise specified byMANIFEST.in(https://setuptools.pypa.io/en/latest/userguide/miscellaneous.html); however, binary distributions do not. Crucially, binary distributions cannot depend on tests intest[s]/test*.py.
Miscellaneous notes
-
All of the
[project]table entries of thepyproject.tomlare standardized, with the exception oflicense. The PEP 639 standard defines new[project]table entrieslicense(corresponding to a valid SPDX license expression) andlicense-files(corresponding to a list of license file glob paths). Assetuptoolsis yet to support this standard, the legacy declaration is used instead; it is of the formlicense = { text = "MIT License" }orlicense = { file = "LICENSE" }. Note that other license files will still be included in the metadata, and hence both the source and binary distributions, unless thelicense-filesentry of the[tool.setuptools]table is also used. It is expected that oncesetuptoolsadds support for PEP 639 that thelicense-filesentry of the[tools.setuptools]table will be deprecated (or at least redundant). -
Depending on the versions of Python,
build, andsetuptoolsthat are employed, it may be necessary to include a boilerplatesetup.pyfile consisting offrom setuptools import setup; setup();for backwards compatibility.
References
Tutorials
Guides
- https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
- https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/
- https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/#platform-wheels
- https://packaging.python.org/en/latest/guides/packaging-binary-extensions/
- https://packaging.python.org/en/latest/guides/using-testpypi/
- https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
- https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
Specifications
- https://packaging.python.org/en/latest/specifications/version-specifiers/
- https://packaging.python.org/en/latest/specifications/pyproject-toml/
- https://packaging.python.org/en/latest/specifications/pypirc/
- https://pypi.org/classifiers/
Examples
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jl2py-0.0.1a1.dev1.tar.gz.
File metadata
- Download URL: jl2py-0.0.1a1.dev1.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
208d9883a3c914492d4a1cde87860006abe2a017787c89dbb9134748a9c0cf67
|
|
| MD5 |
3b12dbe16bdc6f9eb517018c02371141
|
|
| BLAKE2b-256 |
955f1f2e28af1b446f3f93d45f52e5c4a93df81bd95f6188aa0189914aa43f3f
|
File details
Details for the file jl2py-0.0.1a1.dev1-py3-none-any.whl.
File metadata
- Download URL: jl2py-0.0.1a1.dev1-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe1a9f48c505515a10f99262a89c94e97e040821f084863d911b5f8f9f2da408
|
|
| MD5 |
e7119bed5e6d4719440693f6b770a66f
|
|
| BLAKE2b-256 |
741317ba7195a97ce116c88e1a62ee6e866910f245aa77703f931173e00cb0d2
|