Skip to main content

PyPI CI Codecov Documentation Supported Python versions License

Overview

Foundational Packages for a Teaching & Learning Platform (formerly known as “Learning Core” or “openedx-learning”)

The openedx-core project holds Django apps which represent core teaching & learning platform concepts.

Each app exposes a public API of Python functions and Django models; some apps also provide REST APIs. These APIs are suitable for use in openedx-platform and in community-developed Open edX plugins.

APIs marked “UNSTABLE” are subject to change at any time. All other APIs are considered stable, and any breaking changes will be announced through the community DEPR (deprecation and removal) process.

Motivation

The short term goal of this project is to create a small, extensible core that is easier to reason about and write extensions for than openedx-platform. The longer term goal is to create a more nimble core learning platform, enabling rapid experimentation and drastic changes to the learner experience that are difficult to implement with Open edX today.

Replacing openedx-platform is explicitly not a goal of this project, as only a small fraction of the concepts in openedx-platform make sense to carry over here. When these core concepts are extracted and the data migrated, openedx-platform will import apps from this repo and make use of their public in-process APIs.

Architecture

Open edX Core Package Dependencies

Open edX Core code should never import from openedx-platform.

We want to be very strict about dependency management internally as well. Please read the .importlinter config file file and the Python API Conventions ADR for more details.

Model Conventions

We have a few different identifier types in the schema, and we try to avoid _id for this because Django uses that convention to reference IDs in other models/tables. So instead we have:

  • id is the auto-generated, internal row ID and primary key. This never changes. Data models should make foreign keys to this field, as per Django convention.

  • uuid is a randomly generated UUID4. This is the stable way to refer to a row/resource from an external service. This never changes. This is separate from id mostly because there are performance penalties when using UUIDs as primary keys with MySQL.

  • key is intended to be a case-sensitive, alphanumeric key, which holds some meaning to library clients. This is usually stable, but can be changed, depending on the business logic of the client. The apps in this repo should make no assumptions about it being stable. It can be used as a suffix. Since key is a reserved name on certain database systems, the database field is _key.

  • num is like key, but for use when it’s strictly numeric. It can also be used as a suffix.

See Also

The structure of this repo follows OEP-0049 where possible, and also borrows inspiration from:

Code Overview

  • ./src/: All published code. Packages are importable relative to this directory (e.g., import openedx_content). See readme.rst in each sub-folder.

  • ./tests/: Unit tests (not published).

  • ./test_utils/: Internal helpers for unit tests (not published).

License

The code in this repository is licensed under the AGPL 3.0 unless otherwise noted.

Please see LICENSE.txt for details.

Reporting Security Issues

Please do not report security issues in public. Please email security@openedx.org.

Help

If you’re having trouble, we have discussion forums at https://discuss.openedx.org where you can connect with others in the community.

Our real-time conversations are on Slack. You can request a Slack invitation, then join our community Slack workspace.

For more information about these options, see the Getting Help page.

Metadata

Release files for openedx-core 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openedx-core 1.4.0
File Size Uploaded
openedx_core-1.4.0.tar.gz 235.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openedx-core 1.4.0
File Interpreter ABI Platform
openedx_core-1.4.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 557.6 kB

Release files / openedx_core-1.4.0.tar.gz

Download URL openedx_core-1.4.0.tar.gz
Size 235.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b14a6dba9daf641d5b59cc6d96352c60f56960e620d57a48978762bfdb43db71
BLAKE2b-256 checksum
How to use checksums
4d3eed8e012f309cea40ed2e95bf62e24437d61b78b985a653bad77eba28793e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / openedx_core-1.4.0-py2.py3-none-any.whl

Download URL openedx_core-1.4.0-py2.py3-none-any.whl
Size 322.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
972471eb6f80250ce25f049fa56d6629f5c2a22a9c9382863c9d876462561183
BLAKE2b-256 checksum
How to use checksums
7e5351c7f89d7ce719aacf4f75d8a4b2dbda4cb7502f243606e25ea8daf5597e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

1.6.0

2 release files

1.5.0

2 release files

1.4.1

2 release files

This release

1.4.0 This release

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.48.1

2 release files

0.48.0

2 release files

0.47.0

2 release files

0.46.0

2 release files

0.45.0

2 release files

0.44.0

2 release files

0.43.0

2 release files

0.39.2

2 release files

0.39.0

2 release files

0.38.3

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.35.0

2 release files

0.34.2

2 release files

0.34.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page