Get root directory based on file name
Project description
This package simply finds the root of a project based on a filename.
Usage
- Create a hidden file in the root directory of your project.
vim .my_hidden_root_file
Tip: Use project-specific name not a generic .root
or even rely on .git
. Get creative.
- Install
groo
pip install groo-ozika
Tip: use conda
and make sure to activate the right environment to install into.
- Import to your code and use
from groo.groo import get_root
root_folder = get_root(".my_hidden_root_file")
Tip: Always use os.path.join()
to declare paths. It will make your code run across platforms and you won't get any strange erorrs (e.g., extra /
).
Optional
If you want to provide a time limit to the search for the root you can do so by using the timelim
flag (in seconds).
root_folder = get_root(".my_hidden_root_file", timelim=10)
Example usage
Let's say that wee want to keep all project-related files in a specific folder (which can be anywhere on your computer). Let's call this project_folder
.
Then, within it we want to have some data mydata.csv
in a data
folder and some scripts in a scripts
folder runscript.py
.
To let groo
identify the root folder we need to create a file there. I usually prefer to use a dot file because it will remain hidden, however, it can be anything. In this example we will create .my_hidden_root_file
in the project_folder
.
Once the hidden file is created, one might want to load it in their python script (or a jupyter ntbk). Here we want to load data/mydata.csv
within the scripts/runscript.py
.
To do that, we can use this example:
from groo.groo import get_root
root_folder = get_root(".my_hidden_root_file")
import pandas as pd
df = pd.read_csv(os.path.join(root_folder, "data", "mydata.csv"))
Note that the same code will work for any script that is anywhere whithin the project_folder
.
Enjoy!
Release Notes
New in version 0.1.0
1/ Fixed bug from 0.0.9
2/ Added verbose option, if verbose=True
groo will print out the directories that it's searching
Added "quick search" which scans directories above in the hierarchy before performing a more comprehensive search.
New in version 0.0.9
Added "quick search" which scans directories above in the hierarchy before performing a more comprehensive search.
New in version 0.0.8
Removed bug which was displaying path.
New in version 0.0.7
- Previous versions of
groo
could only search for the root flag above in the directory hierarchy. Starting0.0.7
, the flag can be in theory anywhere on the computer. The search algorithm starts from the location of the file and on each iteration moves a level up, performs a full search. - Since full search can sometimes be unpractical,
groo
now allows users to specify maximum time limit using thetimelim
flagget_root(".my_hidden_root_file", timelim=10)
.
Logo by AbtoCreative :heart:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for groo_ozika-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f0102aaf43cfdb2688a575006f3a8c4990fe0fd14f909b15bfd34fe5c2f9ae9 |
|
MD5 | a05827c85872b56c0111c1ed75d41b2b |
|
BLAKE2b-256 | 37195ec2c76af8580ff5fb59fa3455ab1f51edc7db313c7b65e8587b72a05bdf |