mirror of
https://github.com/rjNemo/graphql_python_template
synced 2026-06-06 02:26:47 +00:00
project documentation and license
This commit is contained in:
parent
cb1a547fa7
commit
2e7720d342
7 changed files with 205 additions and 39 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -139,6 +139,7 @@ dmypy.json
|
||||||
# Cython debug symbols
|
# Cython debug symbols
|
||||||
cython_debug/
|
cython_debug/
|
||||||
|
|
||||||
|
.idea/
|
||||||
.idea/.gitignore
|
.idea/.gitignore
|
||||||
.idea/dictionaries
|
.idea/dictionaries
|
||||||
.idea/inspectionProfiles/
|
.idea/inspectionProfiles/
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectTasksOptions">
|
|
||||||
<TaskOptions isEnabled="true">
|
|
||||||
<option name="arguments" value="$FileName$" />
|
|
||||||
<option name="checkSyntaxErrors" value="true" />
|
|
||||||
<option name="description" />
|
|
||||||
<option name="exitCodeBehavior" value="ERROR" />
|
|
||||||
<option name="fileExtension" value="py" />
|
|
||||||
<option name="immediateSync" value="false" />
|
|
||||||
<option name="name" value="black" />
|
|
||||||
<option name="output" value="" />
|
|
||||||
<option name="outputFilters">
|
|
||||||
<array />
|
|
||||||
</option>
|
|
||||||
<option name="outputFromStdout" value="false" />
|
|
||||||
<option name="program" value="black" />
|
|
||||||
<option name="runOnExternalChanges" value="false" />
|
|
||||||
<option name="scopeName" value="All Places" />
|
|
||||||
<option name="trackOnlyRoot" value="false" />
|
|
||||||
<option name="workingDir" value="" />
|
|
||||||
<envs />
|
|
||||||
</TaskOptions>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
92
CONTRIBUTING.md
Normal file
92
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,92 @@
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
When contributing to this repository, please first discuss the change you wish to make via issue,
|
||||||
|
email, or any other method with the owners of this repository before making a change.
|
||||||
|
|
||||||
|
Please note we have a code of conduct, please follow it in all your interactions with the project.
|
||||||
|
|
||||||
|
## Pull Request Process
|
||||||
|
|
||||||
|
1. Ensure any install or build dependencies are removed before the end of the layer when doing a
|
||||||
|
build.
|
||||||
|
2. Update the README.md with details of changes to the interface, this includes new environment
|
||||||
|
variables, exposed ports, useful file locations and container parameters.
|
||||||
|
3. Increase the version numbers in any examples files and the README.md to the new version that this
|
||||||
|
Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
|
||||||
|
4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
|
||||||
|
do not have permission to do that, you may request the second reviewer to merge it for you.
|
||||||
|
|
||||||
|
## Code of Conduct
|
||||||
|
|
||||||
|
### Our Pledge
|
||||||
|
|
||||||
|
In the interest of fostering an open and welcoming environment, we as
|
||||||
|
contributors and maintainers pledge to making participation in our project and
|
||||||
|
our community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity and
|
||||||
|
orientation.
|
||||||
|
|
||||||
|
### Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to creating a positive environment
|
||||||
|
include:
|
||||||
|
|
||||||
|
- Using welcoming and inclusive language
|
||||||
|
- Being respectful of differing viewpoints and experiences
|
||||||
|
- Gracefully accepting constructive criticism
|
||||||
|
- Focusing on what is best for the community
|
||||||
|
- Showing empathy towards other community members
|
||||||
|
|
||||||
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
|
- The use of sexualized language or imagery and unwelcome sexual attention or
|
||||||
|
advances
|
||||||
|
- Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
|
- Public or private harassment
|
||||||
|
- Publishing others' private information, such as a physical or electronic
|
||||||
|
address, without explicit permission
|
||||||
|
- Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
### Our Responsibilities
|
||||||
|
|
||||||
|
Project maintainers are responsible for clarifying the standards of acceptable
|
||||||
|
behavior and are expected to take appropriate and fair corrective action in
|
||||||
|
response to any instances of unacceptable behavior.
|
||||||
|
|
||||||
|
Project maintainers have the right and responsibility to remove, edit, or
|
||||||
|
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||||
|
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||||
|
permanently any contributor for other behaviors that they deem inappropriate,
|
||||||
|
threatening, offensive, or harmful.
|
||||||
|
|
||||||
|
### Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies both within project spaces and in public spaces
|
||||||
|
when an individual is representing the project or its community. Examples of
|
||||||
|
representing a project or community include using an official project e-mail
|
||||||
|
address, posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event. Representation of a project may be
|
||||||
|
further defined and clarified by project maintainers.
|
||||||
|
|
||||||
|
### Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported by contacting the project team at [ruidy.nemausat@gmail.com]. All
|
||||||
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
|
is deemed necessary and appropriate to the circumstances. The project team is
|
||||||
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||||
|
Further details of specific enforcement policies may be posted separately.
|
||||||
|
|
||||||
|
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||||
|
faith may face temporary or permanent repercussions as determined by other
|
||||||
|
members of the project's leadership.
|
||||||
|
|
||||||
|
### Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||||
|
available at [http://contributor-covenant.org/version/1/4][version]
|
||||||
|
|
||||||
|
[homepage]: http://contributor-covenant.org
|
||||||
|
[version]: http://contributor-covenant.org/version/1/4/
|
||||||
21
LICENSE.md
Normal file
21
LICENSE.md
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
# MIT License
|
||||||
|
|
||||||
|
Copyright (c) [2020] [Ruidy]
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
93
README.md
93
README.md
|
|
@ -1,9 +1,92 @@
|
||||||
# Python GraphQL API
|
# 🐍 Python GraphQL API
|
||||||
|
|
||||||
Python GraphQL API template application
|
Python GraphQL API template application.
|
||||||
|
|
||||||
## Built with
|
It's a multi user TODO list application with a clean architecture implementation.
|
||||||
|
|
||||||
- [FastAPI](https://fastapi.tiangolo.com/)
|
## 🚀 Getting Started
|
||||||
- [Graphene](https://graphene-python.org/)
|
|
||||||
|
|
||||||
|
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
|
||||||
|
|
||||||
|
### 💼 Prerequisites
|
||||||
|
|
||||||
|
You need:
|
||||||
|
- `Python 3` installed on your local machine. You will find installation steps for your platform on the
|
||||||
|
python [official website](https://www.python.org/downloads/).
|
||||||
|
- I recommend `pipenv` for virtual environment setup.
|
||||||
|
|
||||||
|
### 🖥 Installing
|
||||||
|
|
||||||
|
Clone the project.
|
||||||
|
|
||||||
|
Create a virtual environment and install dependencies with:
|
||||||
|
```shell script
|
||||||
|
pipenv install
|
||||||
|
```
|
||||||
|
|
||||||
|
Activate the virtual environment with:
|
||||||
|
```shell script
|
||||||
|
pipenv shell
|
||||||
|
```
|
||||||
|
|
||||||
|
Then launch the development server using:
|
||||||
|
```shell script
|
||||||
|
uvicorn app.main:app --reload
|
||||||
|
```
|
||||||
|
The development server and GraphiQL API explorer are available on http://0.0.0.0:8000.
|
||||||
|
|
||||||
|
🎉 Enjoy!
|
||||||
|
|
||||||
|
## 🧪 Running the tests (Under construction)
|
||||||
|
|
||||||
|
Explain how to run the automated tests for this system
|
||||||
|
|
||||||
|
### Break down into end to end tests
|
||||||
|
|
||||||
|
Explain what these tests test and why
|
||||||
|
|
||||||
|
```shell script
|
||||||
|
Give an example
|
||||||
|
```
|
||||||
|
|
||||||
|
### 💅 And coding style tests
|
||||||
|
|
||||||
|
Coding style is enforced using black and isort.
|
||||||
|
|
||||||
|
```shell script
|
||||||
|
isort .
|
||||||
|
black .
|
||||||
|
```
|
||||||
|
|
||||||
|
## ☁️ Deployment
|
||||||
|
|
||||||
|
Add additional notes about how to deploy this on a live system
|
||||||
|
|
||||||
|
## 🛠 Built with
|
||||||
|
|
||||||
|
- [FastAPI](https://fastapi.tiangolo.com/) - FastAPI framework, high performance, easy to learn, fast to code, ready for production
|
||||||
|
- [Graphene](https://graphene-python.org/) - GraphQL in Python Made Easy
|
||||||
|
|
||||||
|
## 👩💻 Contributing
|
||||||
|
|
||||||
|
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
|
||||||
|
|
||||||
|
## 🆚 Versioning
|
||||||
|
|
||||||
|
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/rjNemo/project/tags).
|
||||||
|
|
||||||
|
## ✒️ Authors
|
||||||
|
|
||||||
|
- **Ruidy** - _Initial work_ - [Ruidy](https://github.com/rjNemo)
|
||||||
|
|
||||||
|
See also the list of [contributors](https://github.com/rjNemo/project/contributors) who participated in this project.
|
||||||
|
|
||||||
|
## 👩⚖️ License
|
||||||
|
|
||||||
|
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
|
||||||
|
|
||||||
|
## 🤗 Acknowledgments
|
||||||
|
|
||||||
|
- Hat tip to anyone whose code was used
|
||||||
|
- Inspiration
|
||||||
|
- _etc._
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ class TodoType(graphene.ObjectType):
|
||||||
"""Todo Object Type"""
|
"""Todo Object Type"""
|
||||||
|
|
||||||
todo_id = graphene.String()
|
todo_id = graphene.String()
|
||||||
title = graphene.String(default_value="")
|
title = graphene.String()
|
||||||
is_done = graphene.Boolean(default_value=False)
|
is_done = graphene.Boolean(default_value=False)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -15,8 +15,8 @@ class TodoInputType(graphene.InputObjectType):
|
||||||
"""Todo Input Object"""
|
"""Todo Input Object"""
|
||||||
|
|
||||||
todo_id = graphene.String()
|
todo_id = graphene.String()
|
||||||
title = graphene.String(default_value="")
|
title = graphene.String()
|
||||||
is_done = graphene.Boolean(default_value=False)
|
is_done = graphene.Boolean()
|
||||||
|
|
||||||
|
|
||||||
class TodoResponseField(graphene.ObjectType):
|
class TodoResponseField(graphene.ObjectType):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue