No project description provided
Project description
How to create a new python project with projen
-
run
pj new python --name=kaito_model
(pj
is an alias fornpx projen
) -
configure
.projenrc.py
by adding belowproject = PythonProject( ... homepage="", license=None, project_type=ProjectType.LIB, # or ProjectType.APP if this is not a library pip=False, venv=False, setuptools=False, poetry=True, poetry_options={ "repository": "https://github.com/MetaSearch-IO/KaitoModelPython.git", }, deps=[ "python@^3.9", ], )
Note that python dependency is required by poetry and the version should be at least 3.7
-
increase the version in
.projenrc.py
if necessary. -
setup the poetry environment by running
poetry env use <PATH_TO_PROJECT>/.env/bin/python3.9
(or your desired python version)- see poetry docs for the exact env path.
- you may also need to change the IDE interpreter to the same path, otherwise the IDE will not be able to find the dependencies.
-
run
pj build
to install dependencies and generate artifacts. -
if not already, setup pypi main token by
poetry config pypi-token.pypi <main-token>
, find main token in notion doc -
run
pj publish
to upload a new version to pypi.
How to adopt projen to an existing python project
- run
pj new python
, the script will recognize your project name and create a.projenrc.py
file. - delete the content inside the newly created
<project-name>
folder, move content fromsrc
(or other folder name with existing source files) to<project-name>
, and delete thesrc
folder. Move the test files to<project-name>/tests
as well.- you may want to change the
module_name
in.projenrc.py
, note that only lowercase letters and underscores are allowed.
- you may want to change the
- refer to How to create a new python project with projen step 2 till the end, configure the
.projenrc.py
file. - additionally, you need to base on the existing
setup.cfg
(orrequirements.txt
), add the dependencies to.projenrc.py
file. Then delete thesetup.cfg
(orrequirements.txt
) file.
How to automate the release process
- create a project specific pypi token with
repo
scope, and add it to the github secrets asPYPI_API_TOKEN
. Or ask your admin to do it for you.
Bonus
How to enforce pre commit actions (for any language)
-
install pre-commit and add pre-commit to deps list.
-
create a pre-commit configuration file
.pre-commit-config.yaml
similar to below# See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer exclude: ^\.* # Most dot files managed by projen and are read only - id: check-yaml - id: check-added-large-files
-
run
pre-commit install
-
(optional) run
pre-commit autoupdate
to update hooks to the latest version
How to run github actions locally
-
install act
-
(optional) create an act environment variables fle
.actenv
with extra env variables, some examples could beGITHUB_TOKEN=<your-github-token> PYPI_API_TOKEN=<your-pypi-token>
Note that act will try to load file
.env
as environment variables, but it will not work because.env
now it's a virtual environment folder managed by projen. So we need to create a new file. -
run
act --env-file .actenv
to run the github actions locally.- the first time run
act
will let you choose default image, you should choose at least Medium image. - make an alias for this command for easier use
alias act='act --env-file .actenv'
- the first time run
TODO: Run projen
as pre-commit hook to ensure the project is up to date
TODO: Auto bump the version number
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
Hashes for kaito_model-0.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4888f478bdd8d61294fe14bac5d6888f5ffd19722a345da9109a46e2c56e5a89 |
|
MD5 | f0344c2eea213132d6488093fae97df6 |
|
BLAKE2b-256 | 869b5327d0444131e5155a4bd476066459a3543aab7da1c0cfe2993fe4286e6f |