|
1 | 1 | # Exercism Python Representer
|
2 | 2 |
|
3 |
| -An [automated anaylsis](analyis) tool that parses a Python file to create a normalized `representation.txt` file per the [representer interface][interface]. |
| 3 | +An [automated analysis][analysis] tool that parses a Python file to create a normalized `representation.txt` file per the [representer interface][interface]. |
| 4 | + |
| 5 | + |
| 6 | +# Creating A Representation |
| 7 | + |
| 8 | + |
| 9 | +The Representer is run with `./bin/run.sh` `<exercise-slug>` `<path/to/solution/dir/` `</path/to/output/dir/>` and will read the source code from `<path/to/solution/dir/>` and write a representation to`</path/to/output/dir/>`. |
4 | 10 |
|
5 |
| -It is run with `./bin/run.sh $EXERCISM $PATH_TO_FILES $PATH_FOR_OUTPUT` and will read the source code from `$PATH_TO_FILES` and write a representation to`$PATH_FOR_OUTPUT`. |
6 | 11 |
|
7 | 12 | For example:
|
8 | 13 |
|
9 | 14 | ```bash
|
10 | 15 | ./bin/run.sh two_fer ~/solution-238382y7sds7fsadfasj23j/ ~/solution-238382y7sds7fsadfasj23j/output/
|
11 | 16 | ```
|
12 | 17 |
|
13 |
| - |
| 18 | + |
| 19 | +**Please Note**: When using the `run-in-docker.sh` script, the paths `<path/to/solution/dir/>` and `</path/to/output/dir/>` need to be _**relative**_ to the location of this repo in your local environment. |
| 20 | + |
| 21 | + |
| 22 | +For example: |
| 23 | + |
| 24 | +```bash |
| 25 | +./bin/run-in-docker.sh acronym ../python/exercises/practice/acronym/ ../python/exercises/practice/acronym/ |
| 26 | +``` |
| 27 | + |
| 28 | +Either of these commands/methods should produce the following three files in `</path/to/output/dir/>`: |
| 29 | + |
| 30 | +1. `mapping.json`, which maps the variable names to their placeholder values. |
| 31 | +2. `representation.out` - an AST representation of the solution code. |
| 32 | +3. `representation.txt` - the transformed solution code with placeholders. |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | +# Running the Tests for the Representer |
| 37 | + |
| 38 | +To run all of the current tests: |
| 39 | + |
| 40 | +1. Ensure you have a copy of `pytest 7.2.2` installed globally, or in a virtual env. |
| 41 | +2. Ensure you have Python 3.11.2 installed globally, or in a virtual env. |
| 42 | +3. Open a terminal in the root of your local copy of this project. |
| 43 | +4. Run `pytest` or `pytest -v` |
| 44 | + |
| 45 | + |
14 | 46 | [analysis]: https://github.com/exercism/automated-analysis
|
15 | 47 | [interface]: https://github.com/exercism/automated-analysis/blob/master/docs/representers/interface.md
|
16 | 48 |
|
17 |
| - |
|
0 commit comments