How to Contribute
Guidelines for open source enthusiasts to contribute to our open-source data format.
Last updated
Was this helpful?
Guidelines for open source enthusiasts to contribute to our open-source data format.
Last updated
Was this helpful?
We love feedback! Please or .
Clone the repository:
If you are using Linux, install environment dependencies:
If you are planning to work on videos, install codecs:
Install the package locally with plugins and development dependencies:
Run local tests to ensure everything is correct:
You can use docker-compose for running tests
and even work inside the docker by building the image and bashing into.
Now changes done on your local files will be directly reflected into the package running inside the docker.
To see a list of Deep Lake's custom pytest options, run this command: pytest -h | sed -En '/custom options:/,/\[pytest\] ini\-options/p'
.
memory_storage
: If --memory-skip
is provided, tests with this fixture will be skipped. Otherwise, the test will run with only a MemoryProvider
.
local_storage
: If --local
is not provided, tests with this fixture will be skipped. Otherwise, the test will run with only a LocalProvider
.
s3_storage
: If --s3
is not provided, tests with this fixture will be skipped. Otherwise, the test will run with only an S3Provider
.
storage
: All tests that use the storage
fixture will be parametrized with the enabled StorageProvider
s (enabled via options defined below). If --cache-chains
is provided, storage
may also be a cache chain. Cache chains have the same interface as StorageProvider
, but instead of just a single provider, it is multiple chained in a sequence, where the last provider in the chain is considered the actual storage.
ds
: The same as the storage
fixture, but the storages that are parametrized are wrapped with a Dataset
.
Each StorageProvider
/Dataset
that is created for a test via a fixture will automatically have a root created, and it will be destroyed after the test. If you want to keep this data after the test run, you can use the --keep-storage
option.
Single storage provider fixture:
Multiple storage providers/cache chains:
Dataset storage providers/cache chains:
Deep Lake would not be possible without the work of our community.
Deep Lake uses the python linter. You can auto-format your code by running pip install black
, and the run black .
inside the directory you want to format.
Deep Lake uses Google Docstrings. Please refer to to learn more.
Deep Lake uses static typing for function arguments/variables for better code readability. Deep Lake has a GitHub action that runs mypy .
, which runs similar to pytest .
to check for valid static typing. You can refer to for more information.
Deep Lake uses for tests. In order to make it easier to contribute, Deep Lake also has a set of custom options defined .
Understand how to write tests.
Understand what a is.
Understand what are.
You can find more information on pytest fixtures .
Deep Lake uses for benchmarking, which is a plugin for .