-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Removed dependabot badge as its currently broken for everyone - Reworked some sections of README (closes #628) - Added contributors badge - Added OPTIMADE logo - Fixed some formatting - Moved INSTALL.md to top-level and unified links
- Loading branch information
Showing
5 changed files
with
89 additions
and
79 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# Installation | ||
|
||
## The index meta-database | ||
|
||
This package may be used to setup and run an [OPTIMADE index meta-database](https://github.com/Materials-Consortia/OPTIMADE/blob/develop/optimade.rst#index-meta-database). | ||
Install the package via `pip install optimade[server]`. | ||
|
||
There is a built-in index meta-database set up to populate a `mongomock` in-memory database with resources from a static `json` file containing the `child` resources you, as a database provider, want to serve under this index meta-database. The location of that `json` file is controllable using the `index_links_path` property of the configuration or setting via the environment variable `optimade_index_links_path`. | ||
|
||
Running the index meta-database is then as simple as writing `./run.sh index` in a terminal from the root of this package. | ||
You can find it at the base URL: <http://localhost:5001/v1>. | ||
|
||
Here is an example of how it may look to start your server: | ||
|
||
```sh | ||
:~$ export OPTIMADE_CONFIG_FILE=/home/optimade_server/config.json | ||
:~$ ./path/to/optimade/run.sh index | ||
``` | ||
|
||
## Full development installation | ||
|
||
The dependencies of this package can be found in `setup.py` with their latest supported versions. | ||
By default, a minimal set of requirements are installed to work with the filter language and the `pydantic` models. | ||
The install mode `server` (i.e. `pip install .[server]`) is sufficient to run a `uvicorn` server using the `mongomock` backend (or MongoDB with `pymongo`, if present). | ||
The suite of development and testing tools are installed with via the install modes `dev` and `testing`. | ||
There are additionally three backend-specific install modes, `django`, `elastic` and `mongo`, as well as the `all` mode, which installs all dependencies. | ||
All contributed Python code, must use the [black](https://github.com/ambv/black) code formatter, and must pass the [flake8](http://flake8.pycqa.org/en/latest/) linter that is run automatically on all PRs. | ||
|
||
```sh | ||
# Clone this repository to your computer | ||
git clone git@github.com:Materials-Consortia/optimade-python-tools.git | ||
cd optimade-python-tools | ||
|
||
# Ensure a Python>=3.7 (virtual) environment (example below using Anaconda/Miniconda) | ||
conda create -n optimade python=3.7 | ||
conda activate optimade | ||
|
||
# Install package and dependencies in editable mode (including "dev" requirements). | ||
pip install -e ".[dev]" | ||
|
||
# Run the tests with pytest | ||
py.test | ||
|
||
# Install pre-commit environment (e.g., auto-formats code on `git commit`) | ||
pre-commit install | ||
|
||
# Optional: Install MongoDB (and set `use_real_mongo = true`) | ||
# Below method installs in conda environment and | ||
# - starts server in background | ||
# - ensures and uses ~/dbdata directory to store data | ||
conda install -c anaconda mongodb | ||
mkdir -p ~/dbdata && mongod --dbpath ~/dbdata --syslog --fork | ||
|
||
# Start a development server (auto-reload on file changes at http://localhost:5000 | ||
# You can also execute ./run.sh | ||
uvicorn optimade.server.main:app --reload --port 5000 | ||
|
||
# View auto-generated docs | ||
open http://localhost:5000/docs | ||
# View Open API Schema | ||
open http://localhost:5000/openapi.json | ||
``` | ||
|
||
When developing, you can run both the server and an index meta-database server at the same time (from two separate terminals). | ||
Running the following: | ||
|
||
```shell | ||
./run.sh index | ||
# or | ||
uvicorn optimade.server.main_index:app --reload --port 5001 | ||
``` | ||
|
||
will run the index meta-database server at <http://localhost:5001/v1>. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../INSTALL.md |