Skip to content

Commit

Permalink
[Python 3.11.2 Upgrade] Updated Dockerfile, Requirements, and README (#…
Browse files Browse the repository at this point in the history
…41)

* Changes to Dockerfile, requirements and README to support upgrade to python 3.11.2.

* Remove commented out manual entrypoint.
  • Loading branch information
BethanyG authored Apr 7, 2023
1 parent 78fbe2b commit bc49fb6
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 8 deletions.
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.10.6-slim as base
FROM python:3.11.2-slim as base

FROM base as builder

Expand Down Expand Up @@ -27,3 +27,4 @@ COPY . /opt/representer
WORKDIR /opt/representer

ENTRYPOINT ["sh","/opt/representer/bin/run.sh"]

39 changes: 35 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,48 @@
# Exercism Python Representer

An [automated anaylsis](analyis) tool that parses a Python file to create a normalized `representation.txt` file per the [representer interface][interface].
An [automated analysis][analysis] tool that parses a Python file to create a normalized `representation.txt` file per the [representer interface][interface].


# Creating A Representation


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/>`.

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`.

For example:

```bash
./bin/run.sh two_fer ~/solution-238382y7sds7fsadfasj23j/ ~/solution-238382y7sds7fsadfasj23j/output/
```



**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.


For example:

```bash
./bin/run-in-docker.sh acronym ../python/exercises/practice/acronym/ ../python/exercises/practice/acronym/
```

Either of these commands/methods should produce the following three files in `</path/to/output/dir/>`:

1. `mapping.json`, which maps the variable names to their placeholder values.
2. `representation.out` - an AST representation of the solution code.
3. `representation.txt` - the transformed solution code with placeholders.



# Running the Tests for the Representer

To run all of the current tests:

1. Ensure you have a copy of `pytest 7.2.2` installed globally, or in a virtual env.
2. Ensure you have Python 3.11.2 installed globally, or in a virtual env.
3. Open a terminal in the root of your local copy of this project.
4. Run `pytest` or `pytest -v`


[analysis]: https://github.com/exercism/automated-analysis
[interface]: https://github.com/exercism/automated-analysis/blob/master/docs/representers/interface.md


4 changes: 2 additions & 2 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
pytest~=7.1.2

pytest~=7.2.2
pytest-subtests~=0.10.0
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
astor==0.8.0
black==22.3.0
black<=22.3.0

0 comments on commit bc49fb6

Please sign in to comment.