You should considered also announcing on https://discuss.python.org/ which is a 
lot more active then this list.

Barry


> On 25 Mar 2024, at 04:13, Erik Max Francis via Python-list 
> <python-list@python.org> wrote:
> 
> I'm pleased to announce the release of EmPy 4.1.
> 
> The 4._x_ series is a modernization of the software and a revamp of
> the EmPy system to update its feature set and make it more consistent
> with the latest Python versions and practices.  EmPy 4._x_ was also
> relicensed to BSD.
> 
> The 4._x_ series adds new markups, including inline comments,
> backquote literals, chained if-then-else extended expression,
> functional expressions, support for modern Pythonic controls,
> stringized and multiline significators, named escapes, diacritics,
> icons, and emojis.
> 
> It adds support for configuration objects (replacing options
> dictionaries); native support for Unicode, file buffering, reference
> counted `sys.stdout` proxies and error dispatchers and handlers; fixes
> several serious bugs; has a set of full unit and system tests, an
> extensive builtin help system; and the online documention has been
> rewritten and expanded.
> 
> Attempts have been made to make EmPy 4._x_ as backward compatible as
> is practical.  Most common markup has not changed; the only changes
> being removal of `repr` (in favor of backquote literals) as well as
> literal close parenthesis, bracket and brace markup; in-place markup
> has changed syntax (to make way for emojis); and custom markup is now
> parsed more sensibly.
> 
> Most backward-incompatible changes are in the embedding interface.
> The `Interpreter` constructor and global `expand` function now require
> keyword arguments to prevent further backward compatibility problems,
> though effort has been made to make the behavior as backward
> compatible as possible.  The supported environment variables have
> changed, as well as the filter, diversion and hook APIs, and options
> dictionaries no longer exist (in deference to configurations).
> 
> For a comprehensive list of changes from 3._x_ to 4._x_, see:
> <http://www.alcyone.com/software/empy/ANNOUNCE.html#changes>
> 
> 
> ## Introduction:  Welcome to EmPy!
> 
> [EmPy](http://www.alcyone.com/software/empy/) is a powerful, robust and mature
> templating system for inserting Python code in template text.  EmPy
> takes a source document, processes it, and produces output.  This is
> accomplished via expansions, which are signals to the EmPy system
> where to act and are indicated with markup.  Markup is set off by a
> customizable prefix (by default the at sign, `@`).  EmPy can expand
> arbitrary Python expressions, statements and control structures in
> this way, as well as a variety of additional special forms.  The
> remaining textual data is sent to the output, allowing Python to be
> used in effect as a markup language.
> 
> EmPy also supports hooks, which can intercept and modify the behavior
> of a running interpreter; diversions, which allow recording and
> playback; filters, which are dynamic and can be chained together; and
> a dedicated user-customizable callback markup.  The system is highly
> configurable via command line options, configuration files, and
> environment variables.  An extensive API is also available for
> embedding EmPy functionality in your own Python programs.
> 
> EmPy also has a supplemental library for additional non-essential
> features (`emlib`), a documentation building library used to create
> this documentation (`emdoc`), and an extensive help system (`emhelp`)
> which can be queried from the command line with the main executable
> `em.py` (`-h/--help`, `-H/--topics=TOPICS`).  The base EmPy
> interpreter can function with only the `em.py`/`em` file/module
> available.
> 
> EmPy can be used in a variety of roles, including as a templating
> system, a text processing system (preprocessing and/or
> postprocessing), a simple macro processor, a frontend for a content
> management system, annotating documents, for literate programming, as
> a souped-up text encoding converter, a text beautifier (with macros
> and filters), and many other purposes.
> 
> 
> ### Markup overview
> 
> Expressions are embedded in text with the `@(...)` notation;
> variations include conditional expressions with `@(...?...!...)`  and
> the ability to handle thrown exceptions with `@(...$...)`.  As a
> shortcut, simple variables and expressions can be abbreviated as
> `@variable`, `@object.attribute`, `@sequence[index]`,
> `@function(arguments...)`, `@function{markup}{...}` and
> combinations.  Full-fledged statements are embedded with `@{...}`.
> Control flow in terms of conditional or repeated expansion is
> available with `@[...]`.  A `@` followed by any whitespace character
> (including a newline) expands to nothing, allowing string
> concatenations and line continuations.  Line comments are indicated
> with `@#...` including the trailing newline.  `@*...*` allows inline
> comments.  Escapes are indicated with `@\...`; diacritics with
> `@^...`; icons with `@|...`; and emoji with `@:...:`.  `@%...`,
> `@%!...`, `@%%...%%` and `@%%!...%%` indicate "significators,"
> which are distinctive forms of variable assignment intended to specify
> per-document identification information in a format easy to parse
> externally, _e.g._, to indicate metadata.  In-place expressions are
> specified with `@$...$...$`.  Context name and line number changes
> can be made with `@?...` and `@!...`, respectively.  `@<...>`
> markup is customizable by the user and can be used for any desired
> purpose.  `` @`...` `` allows literal escaping of any EmPy markup.
> And finally, a `@@` sequence (the prefix repeated once) expands to a
> single literal at sign.
> 
> The prefix defaults to `@` but can be changed with
> the command line option `-p/--prefix=CHAR` (_environment variable:_ 
> `EMPY_PREFIX`, _configuration variable:_ `prefix`).
> 
> 
> ### Getting the software
> 
> The current version of EmPy is 4.1.
> 
> The official URL for this Web site is <http://www.alcyone.com/software/empy/>.
> 
> The latest version of the software is available in a tarball here:
> <http://www.alcyone.com/software/empy/empy-latest.tar.gz>.
> 
> The software can be installed through PIP via this shell command:
> 
> ```
> % python3 -m pip install empy
> ```
> 
> 
> For information about upgrading from 3._x_ to 4._x_, see
> <http://www.alcyone.com/software/empy/ANNOUNCE.html#changes>.
> 
> 
> ### Requirements
> 
> EmPy works with any modern version of Python.  Python version 3._x_ is
> expected to be the default and all source file references to the
> Python interpreter (_e.g._, the bangpath of the .py scripts) use
> `python3`.  EmPy also has legacy support for versions of Python going
> back all the way to 2.3, with special emphasis on 2.7 regardless of
> its end-of-life status.  It has no dependency requirements on any
> third-party modules and can run directly off of a stock Python
> interpreter.
> 
> EmPy will run on any operating system with a full-featured Python
> interpreter; this includes, but is probably not limited to, Linux,
> Windows, and macOS (Darwin).  Using EmPy requires knowledge of the
> [Python language](https://www.python.org/).
> 
> EmPy is also compatible with several different Python implementations:
> 
> | Implementation | Supported versions | Description |
> | --- | --- | --- |
> | CPython | 2.3 to 2.7; 3.0 and up | Standard implementation in C |
> | PyPy | 2.7; 3.2 and up | Implementation with just-in-time compiler |
> | IronPython | 2.7; 3.4 and up | Implementation for .NET CLR and Mono |
> | Jython | 2.7 (and up?) | Implementation for JVM |
> 
> It's probable that EmPy is compatible with earlier versions than those
> listed here (potentially going all the way back to 2.3), but this has
> not been tested.
> 
> Only a few .py module file(s) are needed to use EmPy; they can be
> installed system-wide through a distribution package, a third-party
> module/executable, or just dropped into any desired directory in the
> `PYTHONPATH`.  A minimal installation need only install the em.py
> file, either as an importable module and an executable, or both,
> depending on the user's needs.
> 
> EmPy also has optional support for several [third-party
> modules](#third-party-emoji-modules); see [Emoji
> markup](#emoji-markup) for details.
> 
> The testing system included (the test.sh script and the tests and
> suites directories) is intended to run on Unix-like systems with a
> Bourne-like shell (_e.g._, sh, bash, zsh, etc.).  EmPy is routinely
> tested with all supported versions of all available interpreters.
> 
> If you find an incompatibility with your Python interpreter or
> operating system, [let me know](#reporting-bugs).
> 
> 
> ### License
> 
> This software is licensed under
> [BSD (3-Clause)](https://opensource.org/licenses/bsd-3-clause/).
> 
> 
> ### Recent release history (since 3._x_)
> 
> 4.1 (2024 Mar 24)
> 
> : Add support for extension markup `@((...))`, `@[[...]]`,
>  `@{{...}}`, `@<...>`, etc., with custom callbacks retained for
>  backward compatibility; add `@[match]` control support; add
>  interpreter cores for overriding interpreter behavior; add more
>  command line option toggles; add notion of verbose/brief errors;
>  more uniform error message formatting; various documentation
>  updates.
> 
> 4.0.1 (2023 Dec 24)
> 
> : Add root context argument, serializers, and idents to interpreter;
>  fix `setContext...`  methods so they also modify the currents stack;
>  better backward compatibility for `expand` function and
>  `CompatibilityError`; fix inconsistent stack usage with `expand`
>  method; add error dispatchers, cleaner error handling and
>  `ignoreErrors`; have `expand` method/function raise
>  exceptions to caller; eliminate need for `FullContext` class
>  distinct from `Context`; support comments in "clean" controls; add
>  `--no-none-symbol` option; add clearer errors for removed literal
>  markup; add `Container` support class in `emlib`; hide non-standard
>  proxy attributes and methods; support string errors (why not);
>  update and expand tests; help subsystem and documentation updates.
> 
> 4.0 (2023 Nov 29)
> 
> : A major revamp, refresh, and modernization.  Major new features
>  include inline comments `@*...*`; backquote literals `` @`...`
>  ``; chained if-then-else expressions; functional expressions
>  `@f{...}`; full support for `@[try]`, `@[while ...]` and `@[with
>  ...]`  control markup; `@[defined ...]` control markup; stringized
>  and multiline significators; named escapes `@\^{...}`; diacritics
>  `@^...`; icons `@|...`; emojis `@:...:`; configurations; full
>  Unicode and file buffering support; proxy now reference counted;
>  hooks can override behavior; many bug fixes; an extensive builtin
>  help system (`emhelp`); and rewritten and expanded documentation in
>  addition to a dedicated module (`emdoc`).  Changes include
>  relicensing to BSD, interpreter constructor now requires keyword
>  arguments, `-d/--delete-on-error` instead of "fully buffered files";
>  cleaned up environment variables; "repr" markup replaced with emoji
>  markup; remove literal markups `@)`, `@]`, `@}`; context line
>  markup `@!...` no longer pre-adjusts line; custom markup `@<...>`
>  now parsed more sensibly; filter shortcuts removed; context now
>  track column and character count; auxiliary classes moved to `emlib`
>  module; use `argv` instead of `argc` for interpreter arguments.  See
>  [Full list of changes between EmPy 3._x_ and
> 4._x_](http://www.alcyone.com/software/empy/ANNOUNCE.html#all-changes) for a 
> more
>  comprehensive list.
> 
> --
> Erik Max Francis && m...@alcyone.com && http://www.alcyone.com/max/
> San Jose, CA, USA && 37 18 N 121 57 W && Skype erikmaxfrancis
>  Maybe this world is another planet's Hell.
>   -- Aldous Huxley
> --
> https://mail.python.org/mailman/listinfo/python-list
> 
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to