Skip to main content

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


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)

Uploaded Source

Built Distribution

cjm_psl_utils-0.0.4-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

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

Hashes for cjm-psl-utils-0.0.4.tar.gz
Algorithm Hash digest
SHA256 eec200f9f2ccfe4e2df01e0f22bd8483afde77377130bd8282e628c6762fe755
MD5 59318b83ced1e9f725391b796fbc37e7
BLAKE2b-256 0a69a01b731b34adce7613dfbc6cac4ed031667fe0fa6d0dd7a0e06dfb7486f3

See more details on using hashes here.

File details

Details for the file cjm_psl_utils-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for cjm_psl_utils-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6b1d291d43fa5234b8664a069eb802e91d1aaa40424a814c2d6a2ce15288136d
MD5 7870cf402ae51e19bd28bbdadde5f8f2
BLAKE2b-256 cc90d2a82488979d96a0bf783c7e51d75a37ce5c06f1641b4b073cf6d9a164b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page