Package: aind-metadata-service
aind-metadata-serviceREST service to retrieve metadata from databases.InstallationServer InstallationCan be pip installed usingpip install aind-metadata-service[server].Installingpyodbc.You may need to installunixodbc-dev. You can follow thishttps://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16for instructions depending on your os.You may need to rundocker system prunebefore 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 InstallationCan be pip installed withpip install aind-metadata-service[client]For DevelopmentIn the root directory, runpip install -e .[dev]ContributingLinters and testingThere are several libraries used to run linters, check documentation, and run tests.Please test your changes using thecoveragelibrary, which will run the tests and log a coverage report:coverage run -m unittest discover && coverage reportUseinterrogateto check that modules, methods, etc. have been documented thoroughly:interrogate .Useflake8to check that code is up to standards (no unused imports, etc.):flake8 .Useblackto automatically format the code into PEP standards:black .Useisortto automatically sort import statements:isort .Pull requestsFor internal members, please create a branch. For external members, please fork the repo and open a pull request from the fork. We'll primarily useAngularstyle 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 changesfeat: A new featurefix: A bug fixperf: A code change that improves performancerefactor: A code change that neither fixes a bug nor adds a featuretest: Adding missing tests or correcting existing testsDocumentationTo generate the rst files source files for documentation, runsphinx-apidoc -o doc_template/source/ srcThen to create the documentation html files, runsphinx-build -b html doc_template/source/ doc_template/build/htmlMore info on sphinx installation can be found here:https://www.sphinx-doc.org/en/master/usage/installation.htmlResponsesThere 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