Hi!
I'm pleased to announce the availability of wxGlade revision 1.0.1
Please download from https://sourceforge.net/projects/wxglade/files/wxglade/1.0.1/
wxGlade is a GUI builder for wxWidgets and wxPython.
The documentation includes a tutorial for people who have not used wxPython
before.
Included are also examples for integration with matplotlib.
A snapshot of the documentation is available at http://wxglade.sourceforge.net/docs/index.html
For support, there's a mailing list at https://sourceforge.net/p/wxglade/mailman/wxglade-general/
git repository and bug tracker are at https://github.com/wxGlade/wxGlade
(These pages are also linked from the help menu.)
Changes in revision 1.0.x:
==========================
Besides many improvements in usability, code generation and widget support,
this is also a major internal refactoring of the main data structure and how
widgets in the Design window are created / updated / destroyed.
*General:*
- sizers only required where wx requires them; not required e.g. for
Frame->Panel (used to be Frame->Sizer->Panel)
- better handling of display updates when properties are edited
- accessibility and usability improvements
- Dialog example
- documentation update
*Widgets:*
- all: separate class related properties into Class / Base Classes /
Instance Class
- Dialog: add StdDialogButtonSizer and standard buttons (stock items);
support SetAffirmativeId, SetEscapeId
- Button: support for image direction
- MenuBar: support lambda event handlers
- GridBagSizer: indicate overlapped slots in the Tree view
*Generated Code:*
- no separation into __set_properties/__do_layout any more
- support for instantiation classes
*Internal:*
- internal structures refactored
- add shell window and Tree Printer
wxGlade is released under the MIT license.
Happy New Year,
Dietmar Schwertberger
dietmar(a)schwertberger.de
<P><A HREF="https://sourceforge.net/projects/wxglade/files/wxglade/1.0.1/">wxGlade 1.0.1</A> - GUI builder for wxPython (31-Dec-20)
Hi all!
When you work with numbers and need to print them, more often than not you
want to round them. You can use the built-in round() function:
>>> round(1.123, 2)
1.12
>>> x = [1.123, 44.32, 12.11234]
>>> [round(x_i, 2) for x_i in x]
[ 1.12, 44.32, 12.11]
However, when you want to round numbers in a more complex Python object,
you need to be careful; you may also need to write a dedicated function to
round numbers in this object, and you may need to update it if the object's
structure changes.
Now, you do not need to do that: use the rounder Python package instead. It
will round numbers in any non-nested or nested Python object, using the
following functions:
* round_object(obj, digits), which rounds numbers in the object to a
provided number of decimal digits
* ceil_object(obj), which rounds numbers up to the nearest integer
* floor_object(obj), which rounds numbers down to the nearest integer
* signif_object(obj, digits), which rounds numbers to a number of
significant digits
So, for example:
>>> obj = {'float': 1.345442, 'list': [1.1222, 1.1226, "string"], 'set':
{1.1222, 1.1226}, 'tuple': (1.1222, 1.1226)}
>>> round_object(obj, 2)
{'float': 1.35, 'list': [1.12, 1.12, "string"], 'set': {1.12}, 'tuple':
(1.12, 1.12)}
>>> signif_object(obj, 3)
{'float': 1.35, 'list': [1.12, 1.12, "string"], 'set': {1.12}, 'tuple':
(1.12, 1.12)}
The package offers also two other functions:
* signif(x, digits), to round a number to significant digits
* map_object(map_function, obj, use_copy=False)
The latter function is a generalized function that applies callable
map_function to all numbers in obj. Consider this simplistic example:
>>> map_object(lambda x: x**2, {'a': 3, 'b': [1, 2, 3]})
{'a': 9, 'b': [1, 4, 9]}
The package works with objects of many different types, not only those
shown above. It works under both Windows and Linux. You can install it from
PyPi:
$ pip install rounder
You will learn more about it from its GitHub repo:
https://github.com/nyggus/rounder.
Happy rounding!
Pozdrawiam,
Marcin
Hi all,
On behalf of the SciPy development team, I'm pleased to announce the
release of SciPy 1.9.1, which is a bug fix release that includes
some important meson build fixes.
Sources and binary wheels can be found at:
https://pypi.org/project/scipy/ and at:
https://github.com/scipy/scipy/releases/tag/v1.9.1
One of a few ways to install this release with pip:
pip install scipy==1.9.1
=====================
SciPy 1.9.1 Release Notes
=====================
SciPy 1.9.1 is a bug-fix release with no new features
compared to 1.9.0. Notably, some important meson build
fixes are included.
Authors
======
* Anirudh Dagar (1)
* Ralf Gommers (12)
* Matt Haberland (2)
* Andrew Nelson (1)
* Tyler Reddy (14)
* Atsushi Sakai (1)
* Eli Schwartz (1)
* Warren Weckesser (2)
A total of 8 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully
complete.
Issues closed for 1.9.1
------------------------------
* `#14517 <https://github.com/scipy/scipy/issues/14517>`__:
scipy/linalg/tests/test_decomp.py::TestSchur::test_sort test...
* `#16765 <https://github.com/scipy/scipy/issues/16765>`__: DOC:
\`scipy.stats.skew\` no longer returns 0 on constant input
* `#16787 <https://github.com/scipy/scipy/issues/16787>`__: BUG: Can't
build 1.10 with mingw-w64 toolchain and numpy 1.21.6...
* `#16813 <https://github.com/scipy/scipy/issues/16813>`__: BUG:
scipy.interpolate interp1d extrapolate behaviour change...
* `#16878 <https://github.com/scipy/scipy/issues/16878>`__: BUG:
optimize.milp fails to execute when given exactly 3 constraints
Pull requests for 1.9.1
------------------------------
* `#16709 <https://github.com/scipy/scipy/pull/16709>`__: BLD: make the way
we count commits for version numbering more...
* `#16736 <https://github.com/scipy/scipy/pull/16736>`__: REL: prep for
SciPy 1.9.1
* `#16749 <https://github.com/scipy/scipy/pull/16749>`__: BLD: install
missing \`.pxd\` files, and update TODOs/FIXMEs...
* `#16750 <https://github.com/scipy/scipy/pull/16750>`__: BLD: make
OpenBLAS detection work with CMake
* `#16755 <https://github.com/scipy/scipy/pull/16755>`__: TST:
sparse.linalg: Loosen tolerance for the lobpcg test 'test_tolerance_float32'
* `#16760 <https://github.com/scipy/scipy/pull/16760>`__: BLD: use a bit
more idiomatic approach to constructing paths...
* `#16768 <https://github.com/scipy/scipy/pull/16768>`__: DOC:
stats.skew/kurtosis: returns NaN when input has only one...
* `#16794 <https://github.com/scipy/scipy/pull/16794>`__: BLD/REL: on
Windows use numpy 1.22.3 as the version to build...
* `#16822 <https://github.com/scipy/scipy/pull/16822>`__: BUG/TST: linalg:
Check the results of 'schur' more carefully.
* `#16825 <https://github.com/scipy/scipy/pull/16825>`__: BUG: interpolate:
fix "previous" and "next" extrapolate logic...
* `#16862 <https://github.com/scipy/scipy/pull/16862>`__: BUG, DOC: Fix
sphinx autosummary generation for \`odr\` and \`czt\`
* `#16881 <https://github.com/scipy/scipy/pull/16881>`__: MAINT:
optimize.milp: fix input validation when three constraints...
* `#16901 <https://github.com/scipy/scipy/pull/16901>`__: MAINT: 1.9.1
backports
* `#16904 <https://github.com/scipy/scipy/pull/16904>`__: BLD: update
dependency ranges for meson-python and pybind11 for...
Checksums
=========
MD5
~~~
65d2b065c09d40b07272ae30332f6202 Changelog
69dd050c058c46e67d05956bf06e0566 README.txt
6108e7119fd6ae6d6338adede1904bb7
scipy-1.9.1-cp310-cp310-macosx_10_9_x86_64.whl
301053451a09b81268734133ce6d7bda
scipy-1.9.1-cp310-cp310-macosx_12_0_arm64.whl
43a2fa03b951738d0deed6ddbc0a9f4d
scipy-1.9.1-cp310-cp310-macosx_12_0_universal2.macosx_10_9_x86_64.whl
2339afc328d3c92cf85d1d86c5be4e19
scipy-1.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d95584ddfe0703ba3b4624001a1f84f7
scipy-1.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
01937d372de92b3bcf9196b81bf8041d scipy-1.9.1-cp310-cp310-win_amd64.whl
3f85c3d508fced31f420ea31dccb1f83
scipy-1.9.1-cp38-cp38-macosx_10_9_x86_64.whl
3e07b61125901375f3ab99766465a428
scipy-1.9.1-cp38-cp38-macosx_12_0_arm64.whl
5cb2848a03030d3cec82a406b6d032de
scipy-1.9.1-cp38-cp38-macosx_12_0_universal2.macosx_10_9_x86_64.whl
cffdc85788b0d11e00f5c055e303538e
scipy-1.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
ad0b411b353608b9fdd2fb3da25dd9ef
scipy-1.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
fa1872fdcc63b57b95bffdcd2142a54e
scipy-1.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
673905ce31524d16e5d44e600c48ff4d scipy-1.9.1-cp38-cp38-win32.whl
bc421013525427036272cafa47c41f71 scipy-1.9.1-cp38-cp38-win_amd64.whl
19aa6604a3c39cbcc58f7a626e3fad89
scipy-1.9.1-cp39-cp39-macosx_10_9_x86_64.whl
0f6312acdf5edf5a6a5d2bf453e1c6cc
scipy-1.9.1-cp39-cp39-macosx_12_0_arm64.whl
94ab8626a5d2aa5ed936f8571593567b
scipy-1.9.1-cp39-cp39-macosx_12_0_universal2.macosx_10_9_x86_64.whl
4a9c22a4a059383cfb96cc2373156a30
scipy-1.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
156f552987ff57cc347326b1df0a5916
scipy-1.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
8937a4cece2682585ceaf4115e526e21
scipy-1.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9e1d2a5368f20c120da578a9f99b3986 scipy-1.9.1-cp39-cp39-win32.whl
3571be3d0e79cd46b0ab4c6418f6d44b scipy-1.9.1-cp39-cp39-win_amd64.whl
SHA256
~~~~~~
b6b1343d400fb775a7aaefe51654f56478a795318f11c29762a949a024cef9ca Changelog
1f18fbebfc36e5f6b3971b399fda124bd0c307308b407475d37059ba6a66be99 README.txt
c61b4a91a702e8e04aeb0bfc40460e1f17a640977c04dda8757efb0199c75332
scipy-1.9.1-cp310-cp310-macosx_10_9_x86_64.whl
d79da472015d0120ba9b357b28a99146cd6c17b9609403164b1a8ed149b4dfc8
scipy-1.9.1-cp310-cp310-macosx_12_0_arm64.whl
825951b88f56765aeb6e5e38ac9d7d47407cfaaeb008d40aa1b45a2d7ea2731e
scipy-1.9.1-cp310-cp310-macosx_12_0_universal2.macosx_10_9_x86_64.whl
f950a04b33e17b38ff561d5a0951caf3f5b47caa841edd772ffb7959f20a6af0
scipy-1.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
8cc81ac25659fec73599ccc52c989670e5ccd8974cf34bacd7b54a8d809aff1a
scipy-1.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
8d3faa40ac16c6357aaf7ea50394ea6f1e8e99d75e927a51102b1943b311b4d9
scipy-1.9.1-cp310-cp310-win_amd64.whl
7a412c476a91b080e456229e413792bbb5d6202865dae963d1e6e28c2bb58691
scipy-1.9.1-cp38-cp38-macosx_10_9_x86_64.whl
eb954f5aca4d26f468bbebcdc5448348eb287f7bea536c6306f62ea062f63d9a
scipy-1.9.1-cp38-cp38-macosx_12_0_arm64.whl
3c6f5d1d4b9a5e4fe5e14f26ffc9444fc59473bbf8d45dc4a9a15283b7063a72
scipy-1.9.1-cp38-cp38-macosx_12_0_universal2.macosx_10_9_x86_64.whl
bc4e2c77d4cd015d739e75e74ebbafed59ba8497a7ed0fd400231ed7683497c4
scipy-1.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
0419485dbcd0ed78c0d5bf234c5dd63e86065b39b4d669e45810d42199d49521
scipy-1.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
34441dfbee5b002f9e15285014fd56e5e3372493c3e64ae297bae2c4b9659f5a
scipy-1.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b97b479f39c7e4aaf807efd0424dec74bbb379108f7d22cf09323086afcd312c
scipy-1.9.1-cp38-cp38-win32.whl
e8fe305d9d67a81255e06203454729405706907dccbdfcc330b7b3482a6c371d
scipy-1.9.1-cp38-cp38-win_amd64.whl
39ab9240cd215a9349c85ab908dda6d732f7d3b4b192fa05780812495536acc4
scipy-1.9.1-cp39-cp39-macosx_10_9_x86_64.whl
71487c503e036740635f18324f62a11f283a632ace9d35933b2b0a04fd898c98
scipy-1.9.1-cp39-cp39-macosx_12_0_arm64.whl
3bc1ab68b9a096f368ba06c3a5e1d1d50957a86665fc929c4332d21355e7e8f4
scipy-1.9.1-cp39-cp39-macosx_12_0_universal2.macosx_10_9_x86_64.whl
f7c39f7dbb57cce00c108d06d731f3b0e2a4d3a95c66d96bce697684876ce4d4
scipy-1.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
47d1a95bd9d37302afcfe1b84c8011377c4f81e33649c5a5785db9ab827a6ade
scipy-1.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
96d7cf7b25c9f23c59a766385f6370dab0659741699ecc7a451f9b94604938ce
scipy-1.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
09412eb7fb60b8f00b328037fd814d25d261066ebc43a1e339cdce4f7502877e
scipy-1.9.1-cp39-cp39-win32.whl
90c805f30c46cf60f1e76e947574f02954d25e3bb1e97aa8a07bc53aa31cf7d1
scipy-1.9.1-cp39-cp39-win_amd64.whl
What Changed?
=============
This is an enhancement and bug-fix release, and all users are encouraged to
upgrade.
Brief summary:
* Fixed #181: Added the ability to pass file paths to encrypt_file, decrypt_file,
sign_file, verify_file, get_recipients_file and added import_keys_file.
* Fixed #183: Handle FAILURE and UNEXPECTED conditions correctly. Thanks to sebbASF for
the patch.
* Fixed #185: Handle VALIDSIG arguments more robustly.
* Fixed #188: Remove handling of DECRYPTION_FAILED from Verify code, as not required
there. Thanks to sebbASF for the patch.
* Fixed #190: Handle KEY_CREATED more robustly.
* Fixed #191: Handle NODATA messages during verification.
* Fixed #196: Don't log chunk data by default, as it could contain sensitive
information (during decryption, for example).
* Added the ability to pass an environment to the gpg executable. Thanks to Edvard
Rejthar for the patch.
This release [2] has been signed with my code signing key:
Vinay Sajip (CODE SIGNING KEY) <vinay_sajip at yahoo.co.uk>
Fingerprint: CA74 9061 914E AC13 8E66 EADB 9147 B477 339A 9B86
Recent changes to PyPI don't show the GPG signature with the download links.
The source code repository is at [1].
An alternative download source where the signatures are available is at [4].
Documentation is available at [5].
As always, your feedback is most welcome (especially bug reports [3],
patches and suggestions for improvement, or any other points via this group).
Enjoy!
Cheers
Vinay Sajip
[1] https://github.com/vsajip/python-gnupg
[2] https://pypi.org/project/python-gnupg/0.5.0
[3] https://github.com/vsajip/python-gnupg/issues
[4] https://github.com/vsajip/python-gnupg/releases/
[5] https://docs.red-dove.com/python-gnupg/
GF4 is a program to display two-dimensional data, such as time series data, and to perform mathematical operations on the data or between two related data sets. The program aims to make data exploration easy and enjoyable.
The program's interface is modeled after hand-held calculators of the "reverse polish notation" (RPN) style. This kind of calculator was made famous by Hewlett-Packard, starting with their HP-35 and HP-45 calculators. GF4 works with waveforms in place of the numbers manipulated by those hand calculators.
Thus, a waveform can be scaled, squared, have its logarithm taken, integrated and differentiated, be normalized and rectified, and so on. A
discrete Fast Fourier Transform is provided that is not limited to powers of two in data length. Data can be trimmed or padded. Curve fitting and smoothing of several varieties can be done. Two waveforms can be added, subtracted, multiplied, and divided (where possible), correlated or convolved together, among others.
A certain number of basic waveforms can be generated, including a delta function, step, ramp, sine and damped sine, Gaussian PDF and CDF distributions, and more. Altogether there are nearly 80 different operations available.
Like RPN calculators, GF4 operations are organized around a stack of data sets. Unlike those calculators, the various stack levels can be accessed directly as well.
GF4 is complementary to programs like CodraFT, though there is some degree of overlap.
GF4 is written in Python 3, and makes use of MatPlotLib, NumPy, Scipy, and some other standard libraries.
GF4 is available from a Github repository at https://github.com/tbpassin/gf4-project.
The current release is the 1.1 branch; the most recent changes are in the devel branch.
User documentation (still in progress) is at http://tompassin.net/gf4/docs/GF4_Users_Guide.html.
A QuickStart section of the User Guide is at http://tompassin.net/gf4/docs/quickstart.html.
There is a blog at http://tompassin.net/gf4/blogsite.
Please direct correspondence to gf4(a)tompassin.net.
This is a second call for submissions to PyConZA 2022.
PyConZA 2022 will take place on the 13th & 14th of October, 2022. This
year, PyConZA will be a hybrid conference (with in-person and online
access) hosted at the Premier Splendid Inn in Umhlanga, Durban.
To accommodate speakers who are unable to travel to Durban, we will be
accepting a small number of talks to be given remotely.
We are looking for the following presentations:
- Keynotes (45 minute long talks on a subject of general interest)
- Talks (30 minute long talks on more specific topics)
- Remote Talks: (30 minute talks to be delivered remotely - note
that the number of remote submissions we can accommodate is limited).
We are accepting submissions for tutorials, which will run on the 12th
of October. Tutorials can either be half-day (4 hours) or full-day (8
hours).
If you would like to give a presentation, please register at
https://za.pycon.org/ and submit your proposal, following the
instructions at https://za.pycon.org/talks/submit-talk/ . We have a
number of tracks available, including: Data Science, Teaching and
Learning with Python, Web, Scientific Computing, Testing and Other
(which includes all talks that don't fall under the mentioned tracks).
We hope to notify accepted presenters by no later than the 14th of
September 2022.
Speakers will be expected to be available after the presentation for a
short Q&A session. Shared sessions are also possible. The
presentations will be in English.
PyConZA offers a mentorship program for inexperienced speakers. If you
would like assistance preparing your submission, email
team(a)za.pycon.org with a rough draft of your talk proposal and we'll
find a suitable experienced speaker to act as a mentor.
If you want to present something that doesn't fit into the standard
talk categories at PyConZA, please contact the organising committee at
team(a)za.pycon.org so we can discuss whether that will be feasible.
--
Neil Muller
On behalf of the PyConZA organising committee
We all know that the assert statement should not be used in production
code. Instead, you can use assertion-like functions from the easycheck
package.
Consider the following example. You have a function that fits a statistical
model that requires sample size (n) to be at least 20. So,
>>> assert n >= 20
would not enable the function to continue if the condition is violated. But
it's the assert statement, which should not be used that way. Here's where
easycheck shines:
>>> easycheck.check_if(n >= 20)
is the easiest solution. It would throw AttributeError without a message.
But we can improve this a lot; for example:
>>> class TooSmallSampleSizeError(Exception): ...
>>> easycheck.check_if(n >=20, handle_with=TooSmallSampleSizeError,
message=f"Sample size of {n} is too small for the model to run")
You can also issue warnings with easycheck:
>>> class TooSmallSampleSizeWarning(Warning): ...
>>> easycheck.check_if(n >=20, TooSmallSampleSizeWarning, f"Sample of {n}
can be too small")
If n is smaller than 20, you will see the following warning:
"TooSmallSampleSizeWarning: Sample of 10 is too small"
The easycheck package offers functions dedicated to
- checking general conditions (like above)
- checking an object's type
- checking path(s)
- checking an object's length
- comparing floating-point numbers
- checking function arguments
- combining several conditions
Most of them have aliases dedicated to unit testing. The package's
advantages are the readability of the code, and the ease of using the
package's functions.
You can install easycheck from PyPi (pip install easycheck). You can find
easycheck on GitHub: https://github.com/nyggus/easycheck/. If you like it,
consider leaving a star. Contributions are also welcome!
Enjoy easycheck-ing,
Marcin
I'm happy to announce the release of Pygments 2.13. Pygments is a
generic syntax highlighter written in Python.
Pygments 2.13 provides several new lexers, themes and many improvements
to existing lexers. Please have a look at the changelog
<https://pygments.org/docs/changelog/>.
Report bugs and feature requests in the issue tracker:
<https://github.com/pygments/pygments/issues>. Thanks go to all the
contributors of these lexers, and to all those who reported bugs and
waited patiently for this release.
Download it from <https://pypi.org/project/Pygments/>, or look at
the demonstration at <https://pygments.org/demo/>.
Enjoy,
Matthäus
Hi All,
On behalf of the NumPy team, I am pleased to announce the release of
NumPy 1.23.2. NumPy 1.23.2 is a maintenance release that fixes bugs
discovered after the 1.23.1 release. Notable features are:
- Typing changes needed for Python 3.11
- Wheels for Python 3.11.0rc1
The Python versions supported for this release are 3.8-3.11. Wheels can be
downloaded from PyPI <https://pypi.org/project/numpy/1.23.2>; source
archives, release notes, and wheel hashes are available on Github
<https://github.com/numpy/numpy/releases/tag/v1.23.2>.
*Contributors*
A total of 9 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Alexander Grund +
- Bas van Beek
- Charles Harris
- Jon Cusick +
- Matti Picus
- Michael Osthege +
- Pal Barta +
- Ross Barnowski
- Sebastian Berg
*Pull requests merged*
A total of 15 pull requests were merged for this release.
- #22030: ENH: Add ``__array_ufunc__`` typing support to the ``nin=1``
ufuncs
- #22031: MAINT, TYP: Fix ``np.angle`` dtype-overloads
- #22032: MAINT: Do not let ``_GenericAlias`` wrap the underlying
classes'...
- #22033: TYP,MAINT: Allow ``einsum`` subscripts to be passed via
integer...
- #22034: MAINT,TYP: Add object-overloads for the ``np.generic`` rich
comparisons
- #22035: MAINT,TYP: Allow the ``squeeze`` and ``transpose`` method to...
- #22036: BUG: Fix subarray to object cast ownership details
- #22037: BUG: Use ``Popen`` to silently invoke f77 -v
- #22038: BUG: Avoid errors on NULL during deepcopy
- #22039: DOC: Add versionchanged for converter callable behavior.
- #22057: MAINT: Quiet the anaconda uploads.
- #22078: ENH: reorder includes for testing on top of system
installations...
- #22106: TST: fix test_linear_interpolation_formula_symmetric
- #22107: BUG: Fix skip condition for test_loss_of_precision[complex256]
- #22115: BLD: Build python3.11.0rc1 wheels.
Cheers,
Charles Harris
Announcing bor 0.2.0
=========================
PyPI: https://pypi.org/project/bor/0.2.0/
Pip: ``pip install bor==0.2.0``
Source: https://github.com/furkanonder/bor/
What is bor?
-----------------
Bor is user-friendly, tiny source code searcher written in pure Python.
bor currently supports class and def keywords. Other Python keywords will be added in the future releases.
bor {keyword} {pattern}
By default, bor runs in your current directory. You can run bor with the specific source file or directory:
bor {keyword} {pattern} {source_file_or_directory}
Examples
-------------------------
bor class Cat
Output:
Cat at examples/test.py:18
bor class .Cat
Output:
Cat at examples/test.py:18
BlueCat at examples/test.py:26
Enjoy,
Furkan Onderhttps://github.com/furkanonder/