Skip to main content

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:

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!

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:

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:

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!

Metadata

Release files for pop 16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pop 16
File Size Uploaded
pop-16.tar.gz 47.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pop 16
File Interpreter ABI Platform
pop-16-py3-none-any.whl Python 3 none any Details

Total release size: 108.4 kB

Release files / pop-16.tar.gz

Download URL pop-16.tar.gz
Size 47.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0c1d2993c31452b6a6983e5032c10c08687f6fb35ec27d5db450049763c4f88b
BLAKE2b-256 checksum
How to use checksums
bbad0cca7adcd982cf3c8e4897149f6560595a0dfffdcfbeb8727bf9dd0264ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.6.1 requests/2.24.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Release files / pop-16-py3-none-any.whl

Download URL pop-16-py3-none-any.whl
Size 60.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
01aec2a6db4fb11b77a35c81ab5cb47084c7a95fcddc3362c760e0306e4118a8
BLAKE2b-256 checksum
How to use checksums
c56c97f4c0c51daa592cf896bf426be07ed709f878affe01916b173c7073a48a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.6.1 requests/2.24.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Release history Release notifications | RSS feed

27.1.0

2 release files

27.0.2

2 release files

27.0.1

2 release files

27.0.0

2 release files

26.0.4

2 release files

26.0.3

2 release files

26.0.2

2 release files

26.0.1

2 release files

26.0.0

2 release files

25.0.0

2 release files

24.0.1

2 release files

24.0.0

2 release files

23.1.0

2 release files

21.0.2

2 release files

21.0.1

2 release files

20.1.1

2 release files

20.1.0

2 release files

20.0.0

2 release files

19.0.1

2 release files

19.0.0

2 release files

17.1

2 release files

17.0

2 release files

16.4

2 release files

16.3

2 release files

16.2

2 release files

16.1

2 release files

This release

16 This release

2 release files

15

2 release files

14.1

2 release files

14

2 release files

13.2

2 release files

13.1

2 release files

13

2 release files

12

2 release files

11

2 release files

10.1

2 release files

10

2 release files

9

2 release files

8.2

2 release files

8.1

2 release files

8

2 release files

7.6

2 release files

7.5

2 release files

7.4

2 release files

7.3.0

2 release files

7.2.0

2 release files

7.1.0

2 release files

7.0.0

2 release files

6.1.0

2 release files

6.0.0

2 release files

5.2.0

2 release files

5.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page