There are many ways to contribute to the kapture project:
-
provide feedback and suggestions of improvements
-
submit bug reports in the project bug tracker
-
provide a dataset in kapture format that we can add to the downloader tool
-
implement a feature or bug-fix for an outstanding issue
-
add support of kapture format in other software packages (e.g. SfM pipelines…), thus adding support for more datasets
-
provide scripts to create data in kapture format (e.g. local/global feature extraction)
-
propose a new feature and implement it
We’re happy to help you make kapture better, so please mail us at kapture at naverlabs+com for additional information.
The rest of the document concerns software contributions.
To develop kapture on your machine, here are some installation tips:
-
Clone a copy of kapture from source:
git clone https://github.com/naver/kapture.git
-
Please note that kapture requires python version 3.6 or higher
-
install dependencies
pip install -r requirements.txt
kapture # Repository root path
├─ assets/ # Various files (images) used in the project (e.g. for documentation)
├─ kapture/ # kapture library source code
│ ├─ algo/ # Algorithmic related files
│ ├─ converters/ # Converters libraries
│ ├─ core/ # Core kapture objects
│ ├─ io/ # I/O related files
│ └─ utils/ # Various generic utilities
├─ samples/ # data samples (kapture and other formats). Used by tests.
├─ tests/ # Unit and functional tests
└─ tools/ # kapture tools scripts (importers, exporters, utilities)
kapture code follows Python’s PEP-8 guidelines with a few differences:
-
Maximum Line Length is 120 characters
-
function arguments types should be specified
-
return types of functions should be specified
Docstrings are written in the sphinx
format.
-
Variable names should be explicit (e.g. avoid acronyms)
-
private member variables should start with an
_
(underscore)
All kapture source code files should start with this line:
#!/usr/bin/env python3
# Copyright 2020-present NAVER Corp. Under BSD 3-clause license
The library and the clients should use different loggers.
All API functions should be properly documented using docstrings
kapture’s testing is located under tests/. Run the entire test suite with
python -m unittest discover -s tests/
or run individual test files, like python test/test_nn.py
, for individual test suites.