We use python >=3.9 with uv to manage the dependencies.
Java 11 or higher is required.
We use task to manage our build and development scripts and docker to manage the environment.
Refer to taskfile for installation instructions.
Refer to docker for installation instructions.
$ task installTo activate your virtualenv run.
Linting tools are configured for this project, Command task lint applies all lints.
We use pytest to run tests. To run tests use task test command.
- Command
task testwill run all tests - Command
test test-unitwill run unit tests
NOTE: You will be unable to run snowflake or databricks tests because you do not have a connection to the databases.
Open a pull request with your changes and said tests will run in the CI environment.
Before submitting your code please do the following steps:
- Add any changes you want
- Add tests for the new changes
- Edit documentation if you have changed something significant
- Run
task formatto format your changes. - Run
task lintto ensure that types, security and docstrings are okay. - Add a changelog file in .changelog/ folder. Refer to
.changelog/TEMPLATE.yaml.
To check documentation locally run task docs command. It will build documentation and start a server listening on port localhost:8000.
You can contribute by spreading a word about this library. It would also be a huge contribution to write a short article on how you are using this project. You can also share your best practices with us.