Some utility functions using the Python Standard Library.
Project description
cjm-psl-utils
This file will become your README and also the index of your documentation.
Install
pip install cjm_psl_utils
How to use
get_source_code
from cjm_psl_utils.core import get_source_code
get_source_code(get_source_code, markdown=True)
def get_source_code(obj:object, # The object whose source code you want to retrieve.
markdown=False, # Return the source code formatted as markdown
remove_documentation=False): # Remove docstrings and comments
"""
Returns the source code of an object, with an optional markdown formatting.
"""
# Get the source code of the object
source = inspect.getsource(obj)
# If the remove_documentation flag is set to True, remove docstrings and comments
if remove_documentation:
in_docstring = False
lines = source.split('\n')
source = ''
# Remove docstrings
for line in lines:
if line.strip().startswith(('\'\'\'', '\"\"\"')):
in_docstring = not in_docstring
elif not in_docstring:
source += line + '\n'
# Remove comments
source = '\n'.join([line for line in source.split('\n')
if not line.strip().startswith(('#'))])
source = source.replace('\n\n', '\n')
if markdown:
# Format the source code as markdown code block
source = f"```python\n{source}\n```"
# Check if the code is running in Jupyter Notebook
try:
get_ipython
from IPython.display import Markdown
# Format the source code as an IPython Markdown object
source = Markdown(source)
except NameError:
# If not in Jupyter Notebook, do nothing
pass
# Return the formatted source code
return source
file_extract
from cjm_psl_utils.core import file_extract
from pathlib import Path
fname = "../images/images.zip"
dest = Path("./images")
print(dest.exists())
file_extract(fname, dest)
print(dest.exists())
print(list(os.walk(dest))[0][2])
False
True
['cat.jpg']
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
cjm-psl-utils-0.0.4.tar.gz
(5.9 kB
view details)
Built Distribution
File details
Details for the file cjm-psl-utils-0.0.4.tar.gz
.
File metadata
- Download URL: cjm-psl-utils-0.0.4.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eec200f9f2ccfe4e2df01e0f22bd8483afde77377130bd8282e628c6762fe755 |
|
MD5 | 59318b83ced1e9f725391b796fbc37e7 |
|
BLAKE2b-256 | 0a69a01b731b34adce7613dfbc6cac4ed031667fe0fa6d0dd7a0e06dfb7486f3 |
File details
Details for the file cjm_psl_utils-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: cjm_psl_utils-0.0.4-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b1d291d43fa5234b8664a069eb802e91d1aaa40424a814c2d6a2ce15288136d |
|
MD5 | 7870cf402ae51e19bd28bbdadde5f8f2 |
|
BLAKE2b-256 | cc90d2a82488979d96a0bf783c7e51d75a37ce5c06f1641b4b073cf6d9a164b9 |