
Research
SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.
experta
Advanced tools
|pypi| |version| |tests| |docs| |coverage|
Experta is a Python library for building expert systems strongly inspired by CLIPS_.
.. code-block:: python
from random import choice from experta import *
class Light(Fact): """Info about the traffic light.""" pass
class RobotCrossStreet(KnowledgeEngine): @Rule(Light(color='green')) def green_light(self): print("Walk")
@Rule(Light(color='red'))
def red_light(self):
print("Don't walk")
@Rule(AS.light << Light(color=L('yellow') | L('blinking-yellow')))
def cautious(self, light):
print("Be cautious because light is", light["color"])
.. code-block:: python
engine = RobotCrossStreet() engine.reset() engine.declare(Light(color=choice(['green', 'yellow', 'blinking-yellow', 'red']))) engine.run() Be cautious because light is blinking-yellow
Experta is a Pyknow fork. Just replace any pyknow references in your
code/examples to experta and everything should work the same.
You can find some more examples on GitHub_.
.. _CLIPS: http://clipsrules.sourceforge.net .. _GitHub: https://github.com/nilp0inter/experta/tree/develop/docs .. |Experta| image:: https://raw.githubusercontent.com/nilp0inter/experta/develop/docs/static/expertalogo_small.png .. |pypi| image:: https://img.shields.io/pypi/v/experta.svg :target: https://pypi.python.org/pypi/experta
.. |version| image:: https://img.shields.io/pypi/pyversions/experta.svg :target: https://pypi.python.org/pypi/experta
.. |tests| image:: https://travis-ci.org/nilp0inter/experta.svg?branch=master :target: https://travis-ci.org/nilp0inter/experta
.. |docs| image:: https://readthedocs.org/projects/experta/badge/?version=stable :target: https://experta.readthedocs.io/en/stable/ :alt: Documentation Status
.. |coverage| image:: https://codecov.io/gh/nilp0inter/experta/branch/develop/graph/badge.svg :target: https://codecov.io/gh/nilp0inter/experta :alt: codecov.io
1.9.4
* Resolved #10. Corner case in DepthStrategy in which the first
activation of the agenda didn't get removed.
1.9.3
1.9.2
* Resolved #7. In some situations last activation was removed right
after entering the agenda.
1.9.1
1.9.0
* Drop Python 3.4 support.
* Use setup.cfg to save all package metadata.
1.8.0-1.8.2
1.7.0
* Implemented the template system.
* Replaced warnings by watchers messages.
* Fixed freeze() with frozen objects.
* Fixed unfreeze() with unfrozen objects.
* Parametrized DefFacts via reset() kwargs.
1.6.0
1.5.0
* Added Python version 3.7 to tox.ini.
* Monkey and bananas example.
* Fixed bug, numeric index args gets repeated in a weird way introduced in `1.4.0`.
* Pass only the defined args in absence of kwargs.
1.4.0
1.3.0
* `pyknow.operator` module.
* Nested matching.
* Added Talk 'Sistemas Expertos en Python con PyKnow - PyConES 2017' to docs
folder.
1.2.0
pyknow.utils.anyof to mitigate Issue #7.1.1.1
* Removing the borg optimization for P field constraints.
* Use the hash of the check in the sorting of the nodes to always
generate the same alpha part of the network.
1.1.0
1.0.1
* DNF of OR clause inside AND or Rule was implemented wrong.
1.0.0
<1.0.0
* Unestable API.
* Wrong matching algorithm.
* Bad performance
* PLEASE DON'T USE THIS.
FAQs
Expert Systems for Python
We found that experta demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.

Company News
Socket is proud to join the OpenJS Foundation as a Silver Member, deepening our commitment to the long-term health and security of the JavaScript ecosystem.

Security News
npm now links to Socket's security analysis on every package page. Here's what you'll find when you click through.