Skip to main content

jj Inline files - "not so pythonic" files inside your code

Project description

Inline Files

This Python package to allow inline files -- files inside the program.

An inline file is a file stored within another file. This parent file can be any kind of file, but a .py file is preferred due to how an inline file is defined.

Synopsis

from jjinline_files import *
print(message, message2)

"""ILF
==> message
Hello World!

==> message2
And this is all for now.
"""

Definition

We use the following syntax to define an inline file:

r"""ILF
==> ID1
Hello World!

==> ID2:json
{
    "hello": "world"
}
"""

Inline files are defined inside a multiline comment or docstring. Each "file" starts with ==> ID or ==> ID:type, where ID is the inline file's name. In the example above, there are two inline files, "ID1" and "ID2". ID2 has a type json.

If a "file" has an explicit type, the "file" will be processed accordingly. For example, a JSON file will be processed using the json module importer. Default type is text file. Currently, the module supports the following types:

  • text files (default) -- a (multiline) string
  • json -- any
  • yaml -- any
  • jj2 -- jinja2 template -- defines a function(dict, ** args)
  • f -- a f-string -- defines a function(dict, ** args)
  • csv, tsv -- list(list(str))
  • lines -- list(str)
  • pughtml -- str
  • pugjj2 -- jinja2 template in pug -- defines a function(dict, ** args)

File types and their importers

yaml and json

  • typical uses: configuration files, knowledge representation
  • perform yaml-parse(text);
  • return a python value (list, dict, etc)
r"""ILF
from jjinline_files import *

print(f["filename"])

==> f:json
{
    "filename": "calendar",
    "extension": "json"
}

==> g:yaml
filename: file1
extension: yaml
"""

lines

  • returns a list of strings -- text.splitlines()

csv and tsv

  • performs csv-parse(txt)
  • return a list(list(strings))

templates : f (fstrings) and jinja2 and pugjinja2

  • return a function. Parameter:(d:dict or **args) → string
from jjinline_files import *
print( ppname(name="James Bont") )

"""ILF
==> ppname:f
surname {name.split()[-1]}  fullname {name}

"""

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

jjinline_files-0.1.7.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jjinline_files-0.1.7-py2.py3-none-any.whl (4.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file jjinline_files-0.1.7.tar.gz.

File metadata

  • Download URL: jjinline_files-0.1.7.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.1

File hashes

Hashes for jjinline_files-0.1.7.tar.gz
Algorithm Hash digest
SHA256 c48917ad8d620adf34fb7bac10ddc77d53b878bae1cb15739f5299ba24a3e29d
MD5 6d2d2f54664cd9f74c897a9d255af9ab
BLAKE2b-256 90c4b96950d0f8b19fc2fd3be717c8aebfe60115c62e69fe856d3c64922f52bb

See more details on using hashes here.

File details

Details for the file jjinline_files-0.1.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for jjinline_files-0.1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 28b876c835fd1d1aa557fd839bd7720ab07b70c7f9b519df110187df2957cf7a
MD5 480692a69340ef7a572cf3d28e5120d2
BLAKE2b-256 e2227d59e311f28ecbec0d22ab8d553547badf3997d15294a5bfe6977298baa5

See more details on using hashes here.

Supported by

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