{"id":20037900,"url":"https://github.com/openedx/edx-django-utils","last_synced_at":"2025-04-10T02:19:00.503Z","repository":{"id":36982791,"uuid":"141726960","full_name":"openedx/edx-django-utils","owner":"openedx","description":"edX utilities for Django Application development.","archived":false,"fork":false,"pushed_at":"2025-04-09T12:28:36.000Z","size":792,"stargazers_count":28,"open_issues_count":17,"forks_count":24,"subscribers_count":66,"default_branch":"master","last_synced_at":"2025-04-10T02:18:53.344Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://edx.readthedocs.io/projects/edx-django-utils/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openedx.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-20T15:12:04.000Z","updated_at":"2025-04-07T08:01:43.000Z","dependencies_parsed_at":"2023-01-17T11:16:25.041Z","dependency_job_id":"d9d844d5-4f83-4119-a3d2-f8fffffec3c6","html_url":"https://github.com/openedx/edx-django-utils","commit_stats":{"total_commits":249,"total_committers":44,"mean_commits":5.659090909090909,"dds":0.7188755020080322,"last_synced_commit":"ccc23d697bf62890c171f8d8fd7b00399bdc195a"},"previous_names":[],"tags_count":78,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-django-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-django-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-django-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-django-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openedx","download_url":"https://codeload.github.com/openedx/edx-django-utils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142906,"owners_count":21054672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T10:23:47.331Z","updated_at":"2025-04-10T02:19:00.482Z","avatar_url":"https://github.com/openedx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"edx-django-utils\n================\n\n|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|\n|license-badge| |status-badge|\n\nEdX utilities for Django Application development.\n\nNote that some utilities may warrant their own repository. A judgement call\nneeds to be made as to whether code properly belongs here or not. Please\nreview with the Architecture Team if you have any questions.\n\nPurpose\n-------\n\nThis repository includes shared utilities for:\n\n* `Cache Utilities`_: Includes a RequestCache and a TieredCache.\n\n* `Django User and Group Utilities`_: Includes user and group utilities.\n\n* `IP Address Utilities`_: Utilities for handling request IP addresses.\n\n* `Logging Utilities`_: Includes log filters and an encrypted logging helper.\n\n* `Monitoring Utilities`_: Includes Middleware and utilities for enhanced monitoring.\n  At this time, supports NewRelic monitoring.\n\n* `Plugin Infrastructure`_: Enables enhanced Django Plugin capabilities.\n\n* `Security Utilities`_: Includes a middleware to add CSP response headers.\n\n* `Data Generation`_: Management command for generating Django data based on model factories.\n\n.. _Cache Utilities: edx_django_utils/cache/README.rst\n\n.. _Django User and Group Utilities: edx_django_utils/user/README.rst\n\n.. _IP Address Utilities: edx_django_utils/ip/README.rst\n\n.. _Logging Utilities: edx_django_utils/logging/README.rst\n\n.. _Monitoring Utilities: edx_django_utils/monitoring/README.rst\n\n.. _Plugin Infrastructure: edx_django_utils/plugins/README.rst\n\n.. _Security Utilities: edx_django_utils/security/README.rst\n\n.. _Data Generation: edx_django_utils/data_generation/README.rst\n\nDocumentation\n-------------\n\nThe full documentation is in the docs directory, and is published to https://edx-django-utils.readthedocs.org.\n\nGetting Started with Development\n--------------------------------\n\nPlease see the Open edX documentation for `guidance on Python development \u003chttps://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html\u003e`_ in this repo.\n\nDesign Pattern followed by packages\n-----------------------------------\n\nAll tools in edx_django_utils should expose their public api in their __init__.py files. This entails adding to __init__.py all functions/classes/constants/objects that are intended to be used by users of library.\n\nGetting Help\n------------\n\nIf you're having trouble, we have discussion forums at\n`discuss.openedx.org \u003chttps://discuss.openedx.org\u003e`_ where you can connect with others in the\ncommunity.\n\nOur real-time conversations are on Slack. You can request a `Slack\ninvitation`_, then join our `community Slack workspace`_.\n\nFor anything non-trivial, the best path is to `open an issue`__ in this\nrepository with as many details about the issue you are facing as you\ncan provide.\n\n__ https://github.com/openedx/django-config-models/issues\n\nFor more information about these options, see the `Getting Help`_ page.\n\n.. _Slack invitation: https://openedx.org/slack\n.. _community Slack workspace: https://openedx.slack.com/\n.. _Getting Help: https://openedx.org/getting-help\n\nHow To Contribute\n-----------------\n\nContributions are very welcome.\n\nPlease read `How To Contribute \u003chttps://github.com/openedx/.github/blob/master/CONTRIBUTING.md\u003e`_ for details.\n\nPR description template should be automatically applied if you are sending PR from github interface; otherwise you\ncan find it it at `PULL_REQUEST_TEMPLATE.md \u003chttps://github.com/openedx/edx-django-utils/blob/master/.github/PULL_REQUEST_TEMPLATE.md\u003e`_\n\nIssue report template should be automatically applied if you are sending it from github UI as well; otherwise you\ncan find it at `ISSUE_TEMPLATE.md \u003chttps://github.com/openedx/edx-django-utils/blob/master/.github/ISSUE_TEMPLATE.md\u003e`_\n\nThis project is currently accepting all types of contributions, bug fixes, security fixes, maintenance work, or new features. However, please make sure to have a discussion about your new feature idea with the maintainers prior to beginning development to maximize the chances of your change being accepted. You can start a conversation by creating a new issue on this repo summarizing your idea.\n\nOpen edX Code of Conduct\n------------------------\nAll community members are expected to follow the `Open edX Code of Conduct`_.\n\n.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/\n\nPeople\n------\nThe assigned maintainers for this component and other project details may be\nfound in `Backstage`_. Backstage pulls this data from the ``catalog-info.yaml``\nfile in this repo.\n\n\n.. _Backstage: https://backstage.openedx.org/catalog/default/component/edx-django-utils\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@openedx.org.\n\nLicense\n-------\n\nThe code in this repository is licensed under the Apache License, Version 2.0, unless\notherwise noted.\n\nPlease see ``LICENSE.txt`` for details.\n\n\n.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-django-utils.svg\n    :target: https://pypi.python.org/pypi/edx-django-utils/\n    :alt: PyPI\n\n.. |ci-badge| image:: https://github.com/openedx/edx-django-utils/workflows/Python%20CI/badge.svg?branch=master\n    :target: https://github.com/openedx/edx-django-utils/actions?query=workflow%3A%22Python+CI%22\n    :alt: CI\n\n.. |codecov-badge| image:: http://codecov.io/github/edx/edx-django-utils/coverage.svg?branch=master\n    :target: http://codecov.io/github/edx/edx-django-utils?branch=master\n    :alt: Codecov\n\n.. |doc-badge| image:: https://readthedocs.org/projects/edx-django-utils/badge/?version=latest\n    :target: http://edx-django-utils.readthedocs.io/en/latest/\n    :alt: Documentation\n\n.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-django-utils.svg\n    :target: https://pypi.python.org/pypi/edx-django-utils/\n    :alt: Supported Python versions\n\n.. |license-badge| image:: https://img.shields.io/github/license/edx/edx-django-utils.svg\n    :target: https://github.com/openedx/edx-django-utils/blob/master/LICENSE.txt\n    :alt: License\n\n.. |status-badge| image:: https://img.shields.io/badge/Status-Maintained-brightgreen\n    :alt: Maintenance status\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Fedx-django-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenedx%2Fedx-django-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Fedx-django-utils/lists"}