Package: 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 built in small pieces, making development easier to
maintain. 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
languages.Getting StartedA more complete Getting Started Guide is available inside of the documentation
forpop. The best place to start is in the doc’s Getting Started Guide found
here:https://pop.readthedocs.ioFirst off, installpopfrom pypi:pip3installpopNow all it takes to create a pluggable application is a few lines of code.
This is the root of every pop project.
We create a hub, we add dynamic subsystems, and then we call them through the hub’s namespace.importpop.hubhub=pop.hub.Hub()# Dynamic subsystems can now be added to the hubhub.pop.sub.add(dyne_name="my_dynamic_sub")# This hub now exists on the namespace and mirrors the file tree of that sub# the sub "my_dynamic_sub" had a plugin called "init" with a function called "cli" we could do this:hub.my_dynamic_sub.init.cli()Writing your first pop application can be very simple, there is a tool calledpop-createthat automates
much of the groundwork needed to get started with an advanced application.pip3installpop-createNow that you havepop-create, use the tool  to bootstrap your project!
This will make your Python project boiler plate for you!mkdirpoppycdpoppypop-createseed-npoppyNow you have asetup.pythat 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. Thepop-createprogram also made your first directories, yourrun.pystartup script, everything you need to install your project and thepopconf.pyfile used to load in configuration. Runningpop-createalso made a few
other files, but nothing to worry about now.
Look atpop-create’s documentation
for more details of what it can do.Congratulations! You have apopproject! Now you can run the project:python3run.pyWith a project up and running you can now add more plugins, more code and more
plugin subsystems!What Happened?Take a look at thepoppy/poppy/init.pyfile, your littlerun.pyscript
created thehub, loaded your first plugin subsystem,poppyand called
the run function therein. This is the starting point for your app.Next dive into thepop 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 BinaryIn the first few sentences of this document I promised you a single binary!
This is easy to do! Just pip installtiamat:pip3installtiamattiamat--log-level=debugbuild-npoppy-rrequirements/base.txtThis built a single binary of your program! Now you can run it../dist/poppyDocumentationCheck out the docs for more information:https://pop.readthedocs.ioThere 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!