123 lines
3.8 KiB
Plaintext
123 lines
3.8 KiB
Plaintext
Metadata-Version: 2.1
|
|
Name: pop
|
|
Version: 15
|
|
Summary: The Plugin Oriented Programming System
|
|
Home-page: https://saltstack.com
|
|
Author: Thomas S Hatch
|
|
Author-email: thatch@saltstack.com
|
|
License: UNKNOWN
|
|
Platform: UNKNOWN
|
|
Classifier: Operating System :: OS Independent
|
|
Classifier: Programming Language :: Python :: 3.6
|
|
Classifier: Programming Language :: Python :: 3.7
|
|
Classifier: Programming Language :: Python :: 3.8
|
|
Classifier: Development Status :: 5 - Production/Stable
|
|
Requires-Python: >=3.6
|
|
Requires-Dist: pop-config (>=6.11)
|
|
Requires-Dist: dict-toolbox
|
|
Requires-Dist: PyYAML
|
|
Requires-Dist: msgpack
|
|
|
|
====
|
|
POP
|
|
====
|
|
|
|
Pop is used to express the Plugin Oriented Programming Paradigm. The Plugin
|
|
Oriented Programming Paradigm has been designed to make pluggable software
|
|
easy to write and easy to extend.
|
|
|
|
Plugin Oriented Programming presents a new way to scale development teams
|
|
and deliver complex software. This is done by making the applications entirely
|
|
out of plugins, and also making the applications themselves natively pluggable
|
|
with each other.
|
|
|
|
Using Plugin Oriented Programming it then becomes easy to have the best of both
|
|
worlds, software can be build in small pieces, making development easier to
|
|
maintain. But the small pieces can then be merged and deployed in a single
|
|
binary, making code deployment easy as well.
|
|
|
|
All this using Python, one of the world's most popular and powerful programming
|
|
language.
|
|
|
|
Getting Started
|
|
===============
|
|
|
|
A more complete Getting Started Guide is available inside of the documentation
|
|
for `pop`. The best place to start is in the doc's Getting Started Guide found
|
|
here:
|
|
|
|
https://pop.readthedocs.io
|
|
|
|
First off, install `pop` from pypi:
|
|
|
|
.. code-block:: bash
|
|
|
|
pip3 install pop
|
|
|
|
Now that you have `pop`, use the tool that `pop` ships with to bootstrap your
|
|
project! This tool is called `pop-seed` and it will make your Python project
|
|
boiler plate for you!
|
|
|
|
.. code-block:: bash
|
|
|
|
mkdir poppy
|
|
cd poppy
|
|
pop-seed poppy
|
|
|
|
Now you have a `setup.py` file will detect changes to you project and "Just Work".
|
|
Feel free to open it up and fill in some of the blank places, like author name,
|
|
description, etc. The `pop-seed` program also made your first directories, your
|
|
`run.py` startup script, everything you need to install your project and the `pop`
|
|
`conf.py` file used to load in configuration. Running `pop-seed` also made a few
|
|
other files, but nothing to worry about now.
|
|
|
|
Congratulations! You have a `pop` project! Now you can run the project:
|
|
|
|
.. code-block:: bash
|
|
|
|
python3 run.py
|
|
|
|
With a project up and running you can now add more plugins, more code and more
|
|
plugin subsystems!
|
|
|
|
What Happened?
|
|
==============
|
|
|
|
Take a look at the `poppy/poppy/init.py` file, your little `run.py` script
|
|
created the `hub`, loaded your first plugin subsystem, `poppy` and called
|
|
the run function therein. This is the starting point for your app.
|
|
|
|
Next dive into the `pop` documentation, we will take you through how to
|
|
think in Plugin Oriented Programming, helping you see a new way to write
|
|
code that is more flexible and dynamic than anything you have seen before!
|
|
|
|
Single Binary
|
|
=============
|
|
|
|
In the first few sentences of this document I promised you a single binary!
|
|
This is easy to do! Just pip install `tiamat`:
|
|
|
|
.. code-block:: bash
|
|
|
|
pip install tiamat
|
|
tiamat -n poppy
|
|
|
|
This will build a single binary of your program! If something goes wrong it
|
|
is most likely because PyInstaller does not support the latest version of
|
|
Python yet. To fix this you can usually just run `tiamat` with the
|
|
`--dev-pyinst` to build the binary with the latest development snapshot
|
|
of PyInstaller.
|
|
|
|
Documentation
|
|
=============
|
|
|
|
Check out the docs at:
|
|
|
|
https://pop.readthedocs.io
|
|
|
|
There is a much more in depth tutorial here, followed by documents on how to
|
|
think in Plugin Oriented Programming. Take your time to read it, it is not long
|
|
and can change how you look at writing software!
|
|
|
|
|