Say

Latest version: v1.6.6

Safety actively analyzes 621706 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

1.6.7

Reworked "prefixers" into more sustainable design that supports
both "oneshot" and "multi-shot" variants. A one-shot continues
operating indefinitely (e.g. line numbering for an entire
document) while multi-shot are reset to their starting position
each time ``say`` is called (for example for numbering multiple
examples).

Removed arbitrary encodings (e.g. base64) as target of underlying
I/O engine. Too complicated, and the main point.

Tweaked docs. Refreshed dependencies. Tweaked tests. Coverage
increased by 1%.

Official support has been removed for Python 3.3 and 3.4 because
of problems properly installing dependencies in the testing
environment. Say may work on those platforms (it has
historically), but regular testing can't verify that. (Also,
Python 3.7 is now widely available, and is great. Upgrade if at
all possible!)

1.6.5

Added new ``f`` alias to ``fmt`` as compatibility shim / polyfill
for users moving toward Python 3.6+ f-strings, but who have to
support prior versions.

1.6.4

Now uses the latest version of ``ansicolors``, extending to the
full set of CSS color names and hex notations, in addition to the
traditional small set of ANSI color names. So ``say('this',
style='peachpuff')`` or ``say('this', style='663399')`` to your
heart's content!

A future release will be needed to extend color name parsing to
other notations such as ANSI numeric and CSS ``rgb()`` spcs.

Also fixed a bug when wrapping, ANSI colors, and colored prefixes
are used together.

1.6.3

Adds a ``say.verbatim`` method. It provides all the standard say
formatting features, but does NOT interpolate variable expressions
in braces. Useful for managing pre-formatted text which might
contain expressions without the need for escaping.

Updated Python 2/3 compatibility strategy to be Python 3-centric.
Retired _PY3 flag for _PY2 flag, as Python 3 is now the default
assumption. That we now exclude 2.x with x < 6 and 3.x with x < 3
helps greatly. 2.6 and 2.7 make great reaches forward toward 3.x,
and 3.3 started to make strong reaches backwards.

1.6.1

Updated mechanism for method-specific option setting. Still work
in progress, but code now much cleaner.

The experimental operator form of ``say`` has been withdrawn. The
operator style isn't consonant with Python philosophy, complicated
the code base, and only partially worked. Interesting idea, but
experience suggests not worth the trouble.

1.6.0

Withdrew support for backflip-level attempts to make Python 2
files behave with rational encodings. If ``say`` opens a file on
your behalf, it will do the rigtht thing. It will also try very
hard to do the right thing with respect to ``sys.stdout``. But for
arbitrary files that you open, make sure they're properly encoded.
Use ``codecs.open`` or ``io.open`` for that.

Reorganized some code. Added and reinstated tests. Bumped coverage
+1%, to 97%.

Added ``file`` parameter to ``say()``, to make 1:1 compatible with
Python 3's native ``print()``.

Page 1 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.