{"id":20037729,"url":"https://github.com/openedx/taxonomy-connector","last_synced_at":"2025-04-07T17:08:28.638Z","repository":{"id":37703652,"uuid":"291087269","full_name":"openedx/taxonomy-connector","owner":"openedx","description":"A python package that communicates with 3rd party taxonomy vendors","archived":false,"fork":false,"pushed_at":"2025-03-31T00:13:47.000Z","size":1014,"stargazers_count":6,"open_issues_count":10,"forks_count":13,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-03-31T16:14:00.514Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.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","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":"2020-08-28T15:55:21.000Z","updated_at":"2025-03-26T08:02:01.000Z","dependencies_parsed_at":"2023-07-18T13:55:05.484Z","dependency_job_id":"72c654d4-3e06-4dcc-9ae3-656d5d1d9832","html_url":"https://github.com/openedx/taxonomy-connector","commit_stats":{"total_commits":137,"total_committers":35,"mean_commits":3.914285714285714,"dds":0.7664233576642336,"last_synced_commit":"1b0a0bca32eaf879734c504672079cfe096ba8e2"},"previous_names":["edx/taxonomy-service"],"tags_count":117,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ftaxonomy-connector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ftaxonomy-connector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ftaxonomy-connector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ftaxonomy-connector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openedx","download_url":"https://codeload.github.com/openedx/taxonomy-connector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247694876,"owners_count":20980733,"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:21:25.030Z","updated_at":"2025-04-07T17:08:28.610Z","avatar_url":"https://github.com/openedx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Taxonomy\n========\n\n.. image:: https://img.shields.io/pypi/v/taxonomy-connector.svg\n    :target: https://pypi.org/project/taxonomy-connector/\n    :alt: PyPI\n\n.. image:: http://codecov.io/github/openedx/taxonomy-connector/coverage.svg?branch=master\n    :target: http://codecov.io/github/openedx/taxonomy-connector?branch=master\n    :alt: Codecov\n    \n.. image:: https://github.com/openedx/taxonomy-connector/workflows/Python%20CI/badge.svg?branch=master\n    :target: https://github.com/openedx/taxonomy-connector/actions?query=workflow%3A%22Python+CI%22\n    :alt: CI\n\nThe taxonomy service is a library that can be installed in other edX components\nthat provides access to third party taxonomy vendors. EMSI is currently the\nonly vendor available, but others may be integrated as necessary. This service\ncan communicate with the vendor to get job, skill, and salary data. This service\ncan also be used to submit data (course descriptions, etc.) to the vendor to\nproduce potential matches for a skill or job.\n\nAfter submitting a pull request, please use the Github \"Reviewers\" widget to add\nrelevant reviewers and track review process.\n\n\nGetting Started\n---------------\n\nTo install ``taxonomy-connector``, for example, in Course Discovery, follow these steps:\n\n#. It is recommended that you clone this repo into a sub-folder of your working directory. Create a sub-folder with name ``src`` if it doesn't already exist.\n#. Clone this repository into the ``src`` folder.\n#. Go to the shell of the host environment where you want to install this package and run this ``pip install -e /edx/src/taxonomy-connector``\n#. Changes made into the taxonomy repository will now be picked up by your host environment.\n\n\nNotes:\n\n- In order to communicate with EMSI service, you need to set the values of ``client_id`` and ``client_secret``. These values are picked up from the host environment so you need to pass them in ``.yaml`` file of the host environment.\n- Also, to make taxonomy work, the host platform must add an implementation of data providers written in ``./taxonomy/providers``\n- Taxonomy APIs use throttle rate set in ``DEFAULT_THROTTLE_RATES`` settings by default. Custom Throttle rate can by set by adding ``ScopedRateThrottle`` class in ``DEFAULT_THROTTLE_CLASSES`` settings and ``taxonomy-api-throttle-scope`` key in ``DEFAULT_THROTTLE_RATES``\n- For the skill tags to be verified, the management command ``finalize_xblockskill_tags`` needs to be run periodically.\n- Also, You can configure the skill tags verification by setting the values of ``SKILLS_VERIFICATION_THRESHOLD``, ``SKILLS_VERIFICATION_RATIO_THRESHOLD``, ``SKILLS_IGNORED_THRESHOLD`` and ``SKILLS_IGNORED_RATIO_THRESHOLD`` in the host platform or by passing the values to the command using the args ``--min-verified-votes``, ``--ratio-verified-threshold``, ``--min-ignored-votes`` and ``--ratio-ignored-threshold``.\n\n\n.. code-block:: python\n\n    REST_FRAMEWORK = {\n        'DEFAULT_THROTTLE_CLASSES': (\n            'rest_framework.throttling.UserRateThrottle',\n            'rest_framework.throttling.ScopedRateThrottle'\n        ),\n        'DEFAULT_THROTTLE_RATES': {\n            'user': '100/hour',\n            'taxonomy-api-throttle-scope': '60/min',  # custom throttle rate for taxonomy api\n        },\n    }\n\n\nDeveloper Notes\n~~~~~~~~~~~~~~~\n\n- To run unit tests, create a virtualenv, install the requirements with ``make requirements`` and then run ``make test``\n- To update the requirements, run ``make upgrade``\n- To run quality checks, run ``make quality``\n- Please do not import models directly in course discovery. e:g if you want to import CourseSkills in Discovery, use the utility get_whitelisted_course_skills instead of directly importing it.\n\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@openedx.org.\n\nGetting Help\n------------\n\nHave a question about this repository, or about Open edX in general?  Please\nrefer to this `list of resources`_ if you need any assistance.\n\n.. _list of resources: https://open.edx.org/getting-help\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Ftaxonomy-connector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenedx%2Ftaxonomy-connector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Ftaxonomy-connector/lists"}