python-rootpath icon indicating copy to clipboard operation
python-rootpath copied to clipboard

Documentation: Add `examples` folder/script with usage example

Open grimen opened this issue 6 years ago • 6 comments

grimen avatar Jul 26 '19 22:07 grimen

From the README:

It does this by detecting typical package/project root files/folders (e.g. .git, requirements.txt, etc.), but it can also be overriden easily if needed.

It would be nice to see an example of how to override the detection pattern.

In a docker container rootpath.detect() returns None. I copied in my Pipfile, and I've tried rootpath.detect(pattern='Pipfile') - as well as with regular expression args - and I'm still getting None.

jfavrod avatar Jan 28 '20 21:01 jfavrod

I think my efforts may be confounded by the fact that I'm running in a Python virtual environment.

jfavrod avatar Jan 28 '20 22:01 jfavrod

@jfavrod Would you be able to share example code I could run locally to reproduce? I use this library in Python Virtual Environment successfully, but it is possible there are edge cases I have not stumbled onto.

grimen avatar Jan 29 '20 04:01 grimen

I set up a simplified example...

$ tree .
├── Dockerfile
├── Pipfile
├── Pipfile.lock
└── src
    └── index.py

1 directory, 4 files

Here's the contents of the Dockerfile:

$ cat Dockerfile
FROM python:3.7
RUN mkdir -p /app/src
WORKDIR /app
RUN pip install pipenv
COPY Pipfile /app/Pipfile
COPY Pipfile.lock /app/Pipfile.lock
RUN pipenv install
CMD ["pipenv", "run", "python", "src/index.py"]

Also the contents of the Pipfile:

$cat Pipfile
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
rootpath = "*"

[requires]
python_version = "3.7"

And finally the index.py file:

$ cat src/index.py
import rootpath

print(rootpath.detect())

When I run the container, here's the output:

$ docker container run -v ${PWD}/src:/app/src --rm agsync-api-py
None

jfavrod avatar Jan 29 '20 17:01 jfavrod

I just tried from the above, and it works. I tried to make the example more like the situation where I was experiencing the problem, but it still works.

rootpath.detect(pattern='Pipfile')

I just found out the code I was working on is no longer maintained, so I won't be contributing to it (or working on this issue anymore). I do believe I'll be using the rootpath module in future Python projects though. Thank you!

jfavrod avatar Jan 29 '20 17:01 jfavrod

OK, good. Thank you for raising the concert, I should add some more docs/examples for sure whenever I get a moment to do that.

grimen avatar Jan 29 '20 19:01 grimen