REST service to retrive metadata from databases.
Project description
aind-metadata-service
REST service to retrieve metadata from databases.
Installation
Server Installation
Can be pip installed using pip install aind-metadata-service[server]
.
Installing pyodbc
.
-
You may need to install
unixodbc-dev
. You can follow this https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16 for instructions depending on your os. -
You may need to run
docker system prune
before building the docker image if you're getting erros running apt-get:
#10 23.69 Err:1 http://deb.debian.org/debian bullseye/main amd64 libodbc1 amd64 2.3.6-0.1+b1
#10 23.69 Could not connect to debian.map.fastlydns.net:80 (146.75.42.132). - connect (111: Connection refused) Unable to connect to deb.debian.org:http:
Client Installation
Can be pip installed with pip install aind-metadata-service[client]
For Development
In the root directory, run
pip install -e .[dev]
Contributing
Linters and testing
There are several libraries used to run linters, check documentation, and run tests.
- Please test your changes using the coverage library, which will run the tests and log a coverage report:
coverage run -m unittest discover && coverage report
- Use interrogate to check that modules, methods, etc. have been documented thoroughly:
interrogate .
- Use flake8 to check that code is up to standards (no unused imports, etc.):
flake8 .
- Use black to automatically format the code into PEP standards:
black .
- Use isort to automatically sort import statements:
isort .
Pull requests
For internal members, please create a branch. For external members, please fork the repo and open a pull request from the fork. We'll primarily use Angular style for commit messages. Roughly, they should follow the pattern:
<type>(<scope>): <short summary>
where scope (optional) describes the packages affected by the code changes and type (mandatory) is one of:
- build: Changes that affect the build system or external dependencies (example scopes: pyproject.toml, setup.py)
- ci: Changes to our CI configuration files and scripts (examples: .github/workflows/ci.yml)
- docs: Documentation only changes
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- test: Adding missing tests or correcting existing tests
Documentation
To generate the rst files source files for documentation, run
sphinx-apidoc -o doc_template/source/ src
Then to create the documentation html files, run
sphinx-build -b html doc_template/source/ doc_template/build/html
More info on sphinx installation can be found here: https://www.sphinx-doc.org/en/master/usage/installation.html
Responses
There are 6 possible status code responses for aind-metadata-service:
- 200: successfully retrieved valid data without any problems.
- 406: successfully retrieved some data, but failed to validate against pydantic models.
- 404: found no data that matches query.
- 300: queried the server, but more items were returned than expected.
- 503: failed to connect to labtracks/sharepoint servers.
- 500: successfully connected to labtracks/sharepoint, but some other server error occurred. These status codes are defined in StatusCodes enum in response_handler.py
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 aind_metadata_service-0.4.16.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f06db71f0d231aa6f2c60da71f51cc0c1f1908347a1be18395e0e94daf8b83f |
|
MD5 | 0bee5d10fd8e5fddfa74cea583d8c3c6 |
|
BLAKE2b-256 | 6511a297747e0dc928a85af14076c9af8a0fb9d28acd4ca41eab291e70ea1c74 |
Hashes for aind_metadata_service-0.4.16-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3fc9db497fdd01ffff2c67a478614f9fd0cf1666aa3d0dbd3403a52f57efad3 |
|
MD5 | b895fdb99c0c11cd9e8e4962911d646d |
|
BLAKE2b-256 | 8b5a02ad9957c76e41e60132c0f6b66f69d0179825d1eb84a73b45c38080888f |