Skip to main content

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}

"""

Release files for jjinline_files 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jjinline_files 0.1.7
File Size Uploaded
jjinline_files-0.1.7.tar.gz 3.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jjinline_files 0.1.7
File Interpreter ABI Platform
jjinline_files-0.1.7-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 7.6 kB

Release files / jjinline_files-0.1.7.tar.gz

Download URL jjinline_files-0.1.7.tar.gz
Size 3.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c48917ad8d620adf34fb7bac10ddc77d53b878bae1cb15739f5299ba24a3e29d
BLAKE2b-256 checksum
How to use checksums
90c4b96950d0f8b19fc2fd3be717c8aebfe60115c62e69fe856d3c64922f52bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.1

Release files / jjinline_files-0.1.7-py2.py3-none-any.whl

Download URL jjinline_files-0.1.7-py2.py3-none-any.whl
Size 4.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
28b876c835fd1d1aa557fd839bd7720ab07b70c7f9b519df110187df2957cf7a
BLAKE2b-256 checksum
How to use checksums
e2227d59e311f28ecbec0d22ab8d553547badf3997d15294a5bfe6977298baa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.1

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page