====================================
django app of an article
====================================
Anarticle uses tag, catelog, and article models to publish articles.
Support for Ariadne graphQL with pre-defined types and basic resolvers.
------------
Requirements
------------
* Python 3.10+
* django 4.0+
* pillow 9.4.0+
--------
Settings
--------
Store uploaded file with tokenize file name, default to False
* ANARTICLE_USE_TOKEN_FILENAME = True
-------------------
Django admin mixins
-------------------
Use predefined mixins to construct the admin class.
* TagAdminMixin
* CategoryAdminMixin
* ArticleAdminMixin
.. code:: python
from django.contrib import admin
from anarticle.models import Tag
from anarticle.admin.mixins import TagAdminMixin
@admin.register(Tag)
class TagAdmin(TagAdminMixin, ModelAdmin):
...
---------------------------
Ariadne types and resolvers
---------------------------
Integrate predefined types and resolvers to scheme.
Requirements
------------
* ariadne 0.16.0+
* ariadne-relay 0.1.0a8+
**scheme**
.. code:: python
from anarticle.graphqls import anarticle_schema
* anarticle/graphqls/article.graphql
* anarticle/graphqls/tag.graphql
* anarticle/graphqls/category.graphql
**types**
.. code:: python
from anarticle.graphqls import anarticle_bindables
* anarticle
* anarticle_paragraph
* anarticle_tag
* anarticle_category
**resolvers**
Async version
.. code:: python
from anarticle.graphqls import resolve_anarticle_tag_instance, \
resolve_anarticle_tag_articles_connection, resolve_anarticle_tags
anarticle_tag.set_instance_resolver(resolve_anarticle_tag_instance)
anarticle_tag.set_connection('articles', resolve_anarticle_tag_articles_connection)
query.set_field('tags', resolve_anarticle_tags)
* resolve_anarticle_tag_instance,
* resolve_anarticle_tag_articles_connection,
* resolve_anarticle_category_instance,
* resolve_anarticle_category_tags_connection,
* resolve_anarticle_instance,
* resolve_anarticle_paragraphs,
* resolve_anarticle_tags_connection,
* resolve_anarticle_tags,
* resolve_anarticle_categories,
* resolve_anarticles,
Sync version
* resolve_anarticle_tag_instance_sync,
* resolve_anarticle_tag_articles_connection_sync,
* resolve_anarticle_category_instance_sync,
* resolve_anarticle_category_tags_connection_sync,
* resolve_anarticle_instance_sync,
* resolve_anarticle_paragraphs_sync,
* resolve_anarticle_tags_connection_sync,
* resolve_anarticle_tags_sync,
* resolve_anarticle_categories_sync,
* resolve_anarticles_sync,
-------
License
-------
django-anarticle is released under the terms of **Apache license**. Full details in LICENSE file.
Raw data
{
"_id": null,
"home_page": "",
"name": "django-anarticle",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "",
"keywords": "django,graphql,ariadne,aglean,article,tag,category",
"author": "",
"author_email": "Chiu <chiutung.chen@aglean.com>",
"download_url": "https://files.pythonhosted.org/packages/86/01/c8709c4c12bd01461e2e10f23c7aa8e7c76f4b917e5a19b1ec601473790c/django-anarticle-0.1.0rc3.tar.gz",
"platform": null,
"description": "====================================\ndjango app of an article\n====================================\n\nAnarticle uses tag, catelog, and article models to publish articles.\nSupport for Ariadne graphQL with pre-defined types and basic resolvers.\n\n------------\nRequirements\n------------\n\n* Python 3.10+\n* django 4.0+\n* pillow 9.4.0+\n\n--------\nSettings\n--------\n\nStore uploaded file with tokenize file name, default to False\n\n* ANARTICLE_USE_TOKEN_FILENAME = True\n\n-------------------\nDjango admin mixins\n-------------------\n\nUse predefined mixins to construct the admin class.\n\n* TagAdminMixin\n* CategoryAdminMixin\n* ArticleAdminMixin\n\n.. code:: python\n\n from django.contrib import admin\n\n from anarticle.models import Tag\n from anarticle.admin.mixins import TagAdminMixin\n\n\n @admin.register(Tag)\n class TagAdmin(TagAdminMixin, ModelAdmin):\n ...\n\n---------------------------\nAriadne types and resolvers\n---------------------------\n\nIntegrate predefined types and resolvers to scheme.\n\nRequirements\n------------\n\n* ariadne 0.16.0+\n* ariadne-relay 0.1.0a8+\n\n**scheme**\n\n.. code:: python\n\n from anarticle.graphqls import anarticle_schema\n\n\n* anarticle/graphqls/article.graphql\n* anarticle/graphqls/tag.graphql\n* anarticle/graphqls/category.graphql\n\n**types**\n\n.. code:: python\n\n from anarticle.graphqls import anarticle_bindables\n\n\n* anarticle\n* anarticle_paragraph\n* anarticle_tag\n* anarticle_category\n\n**resolvers**\n\nAsync version\n\n.. code:: python\n\n from anarticle.graphqls import resolve_anarticle_tag_instance, \\\n resolve_anarticle_tag_articles_connection, resolve_anarticle_tags\n\n anarticle_tag.set_instance_resolver(resolve_anarticle_tag_instance)\n anarticle_tag.set_connection('articles', resolve_anarticle_tag_articles_connection)\n\n query.set_field('tags', resolve_anarticle_tags)\n\n\n* resolve_anarticle_tag_instance,\n* resolve_anarticle_tag_articles_connection,\n* resolve_anarticle_category_instance,\n* resolve_anarticle_category_tags_connection,\n* resolve_anarticle_instance,\n* resolve_anarticle_paragraphs,\n* resolve_anarticle_tags_connection,\n* resolve_anarticle_tags,\n* resolve_anarticle_categories,\n* resolve_anarticles,\n\n\nSync version\n\n* resolve_anarticle_tag_instance_sync,\n* resolve_anarticle_tag_articles_connection_sync,\n* resolve_anarticle_category_instance_sync,\n* resolve_anarticle_category_tags_connection_sync,\n* resolve_anarticle_instance_sync,\n* resolve_anarticle_paragraphs_sync,\n* resolve_anarticle_tags_connection_sync,\n* resolve_anarticle_tags_sync,\n* resolve_anarticle_categories_sync,\n* resolve_anarticles_sync,\n\n-------\nLicense\n-------\n\ndjango-anarticle is released under the terms of **Apache license**. Full details in LICENSE file.\n",
"bugtrack_url": null,
"license": "",
"summary": "App for publishing articles with tags and categories",
"version": "0.1.0rc3",
"project_urls": {
"Homepage": "https://github.com/aglean/django-anarticle"
},
"split_keywords": [
"django",
"graphql",
"ariadne",
"aglean",
"article",
"tag",
"category"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c77fc443e4134ee0a59c13bfc09ffe2c2f9c0385ed86e9ab58329caee2d2383b",
"md5": "8a6c8815b50146fd907e05049fcd7aa8",
"sha256": "1f02a388fa746c902a0d7de9e40adb34e2530d58fbd7b7dc57d964ca46e33164"
},
"downloads": -1,
"filename": "django_anarticle-0.1.0rc3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8a6c8815b50146fd907e05049fcd7aa8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 13481,
"upload_time": "2023-06-19T04:08:55",
"upload_time_iso_8601": "2023-06-19T04:08:55.990883Z",
"url": "https://files.pythonhosted.org/packages/c7/7f/c443e4134ee0a59c13bfc09ffe2c2f9c0385ed86e9ab58329caee2d2383b/django_anarticle-0.1.0rc3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8601c8709c4c12bd01461e2e10f23c7aa8e7c76f4b917e5a19b1ec601473790c",
"md5": "c5c15785e5f1ab379516632cb68c9d60",
"sha256": "65621cd590e21e4fcc8e5444de95ae7eae402fdce1c4f3347fababdaf0834b1f"
},
"downloads": -1,
"filename": "django-anarticle-0.1.0rc3.tar.gz",
"has_sig": false,
"md5_digest": "c5c15785e5f1ab379516632cb68c9d60",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 11571,
"upload_time": "2023-06-19T04:08:58",
"upload_time_iso_8601": "2023-06-19T04:08:58.626219Z",
"url": "https://files.pythonhosted.org/packages/86/01/c8709c4c12bd01461e2e10f23c7aa8e7c76f4b917e5a19b1ec601473790c/django-anarticle-0.1.0rc3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-19 04:08:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "aglean",
"github_project": "django-anarticle",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "django-anarticle"
}