{"id":20082075,"url":"https://github.com/exercism/python-representer","last_synced_at":"2025-05-06T00:31:35.754Z","repository":{"id":40383049,"uuid":"223169222","full_name":"exercism/python-representer","owner":"exercism","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-05T06:54:20.000Z","size":1338,"stargazers_count":6,"open_issues_count":3,"forks_count":10,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-29T06:23:14.104Z","etag":null,"topics":["community-contributions-paused","exercism-representer","exercism-tooling","maintained-autonomous"],"latest_commit_sha":null,"homepage":null,"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/exercism.png","metadata":{"funding":{"github":["exercism"],"custom":["https://exercism.org/donate"]},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-11-21T12:29:08.000Z","updated_at":"2024-11-24T13:51:20.000Z","dependencies_parsed_at":"2025-04-29T06:33:06.480Z","dependency_job_id":null,"html_url":"https://github.com/exercism/python-representer","commit_stats":{"total_commits":63,"total_committers":10,"mean_commits":6.3,"dds":0.7301587301587302,"last_synced_commit":"ff715658348597f7450048a9d8fecbad547a890c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Fpython-representer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Fpython-representer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Fpython-representer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Fpython-representer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exercism","download_url":"https://codeload.github.com/exercism/python-representer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252211372,"owners_count":21712388,"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":["community-contributions-paused","exercism-representer","exercism-tooling","maintained-autonomous"],"created_at":"2024-11-13T15:41:44.214Z","updated_at":"2025-05-06T00:31:34.456Z","avatar_url":"https://github.com/exercism.png","language":"Python","funding_links":["https://github.com/sponsors/exercism","https://exercism.org/donate"],"categories":[],"sub_categories":[],"readme":"# Exercism Python Representer\n\nAn [automated analysis][analysis] tool that parses a Python file to create a normalized `representation.txt` file per the [representer interface][interface].\n\n\n# Creating A Representation\n\n\nThe Representer is run with `./bin/run.sh` `\u003cexercise-slug\u003e` `\u003cpath/to/solution/dir/` `\u003c/path/to/output/dir/\u003e` and will read the source code from `\u003cpath/to/solution/dir/\u003e` and write a representation to`\u003c/path/to/output/dir/\u003e`.\n\n\nFor example:\n\n```bash\n./bin/run.sh two_fer ~/solution-238382y7sds7fsadfasj23j/ ~/solution-238382y7sds7fsadfasj23j/output/\n```\n\n\n**Please Note**:  When using the `run-in-docker.sh` script, the paths `\u003cpath/to/solution/dir/\u003e` and `\u003c/path/to/output/dir/\u003e` need to be _**relative**_ to the location of this repo in your local environment.\n\n\nFor example:\n\n```bash\n./bin/run-in-docker.sh acronym ../python/exercises/practice/acronym/ ../python/exercises/practice/acronym/\n```\n\nEither of these commands/methods should produce the following three files in `\u003c/path/to/output/dir/\u003e`:\n\n1.  `mapping.json`, which maps the variable names to their placeholder values.\n2.  `representation.out` - an AST representation of the solution code.\n3.  `representation.txt` - the transformed solution code with placeholders.\n\n\n\n# Running the Tests for the Representer\n\nTo run all of the current tests:\n\n1. Ensure you have a copy of `pytest 7.2.2` installed globally, or in a virtual env.\n2. Ensure you have Python 3.11.2 installed globally, or in a virtual env.\n3. Open a terminal in the root of your local copy of this project.\n4. Run `pytest` or `pytest -v`\n\n\n [analysis]: https://github.com/exercism/automated-analysis\n [interface]: https://github.com/exercism/automated-analysis/blob/master/docs/representers/interface.md\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexercism%2Fpython-representer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexercism%2Fpython-representer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexercism%2Fpython-representer/lists"}