SlideShare a Scribd company logo
1 of 20
Download to read offline
Python Eggs
Alin Voinea @ Eau de Web
Cuprins
● Index egg-uri Python
● Structura unui egg Python
● Utilitare şi şabloane pentru crearea unui egg
● Distribuirea unui egg
● Automatizare
● Proxy eggs server / PyPI mirror
● Custom / Private eggs server
1. Python Package Index (pypi)
“O metoda* mai simpla de a distribui şi instala
un pachet python”
pypi.python.org
*similar cu RPM, DEB, APK, IPK, etc
1. Python Package Index (pypi)
$ pip* install helloworld
$ pip* install http://eggrepo.com/helloworld
*easy_install
2. Structura unui egg
helloworld/
setup.py
README.rst
src/
__init__.py
3. Utilitare şi şablonane
● zopeskel
● templer.core
3.1 ZopeSkel
$ pip install zopeskel
$ zopeskel --list-templates
$ zopeskel basic_namespace
3.1 Custom ZopeSkel templates
$ pip install eea.package
$ zopeskel --list-templates
$ zopeskel eea
4. Distribuirea unui egg python
● Direct Install
$ python setup.py install
● Upload PyPI
$ python setup.py register -r pypi
$ python setup.py sdist upload
$ pip install hello.world
4.1 setup.py
$ vim setup.py
from setuptools import setup
setup(
name=”hello.world”,
version=”1.0”,
…
)
4.1 setup.py
● Metadata:
○ https://docs.python.org/3/distutils/setupscript.html#meta-data
● Classifiers:
○ https://pypi.python.org/pypi?%3Aaction=list_classifiers
4.1 .pypirc*
https://docs.python.org/3/distutils/packageindex.html#pypirc
$ vim /home/user/.pypirc
[distutils]
index-servers =
pypi
[pypi]
repository: http://pypi.python.org/pypi/
username: gigel
password: secret
5 Automatizare
● zest.releaser
● jarn.mkrelease
● eea.eggmonkey
5.1 zest.releaser
“Software releasing made easy and repeatable”
$ pip install zest.releaser
$ cd hello.world
$ prerelease
$ release
$ postrelease
$ fullrelease
5.2 jarn.mkrelease
“Python egg releaser”
$ pip install jarn.mkrelease
$ vim /home/user/.mkrelease
[defaults]
distdefault = eea
[aliases]
all =
pypi
plone
$ mkrelease -d all hello.world
5.3 eea.eggmonkey
“Automate releasing eggs with jarn.mkrelease”
$ vim buildout.cfg
[buildout]
extensions +=
mr.developer
eea.eggmonkey
$ bin/monkey -d eea hello.world
$ bin/print_unreleased_packages
6. Mirroring
“collective.eggproxy”
$ vim buildout.cfg
[buildout]
index = http://eggrepo.eea.europa.eu/pypi/
7. Custom eggs server
“ClueReleaseManager”
$ vim buildout.cfg
[buildout]
find-links = http://eggrepo.eea.europa.eu/simple
$ python setup.py register -r http://eggrepo.eea.europa.eu
8. Legături externe
● http://taskman.eionet.europa.eu/projects/zope/wiki/WebDevelopmentCycle
● http://taskman.eionet.europa.eu/projects/zope/wiki/HowToReleaseAnEgg
● http://taskman.eionet.europa.eu/projects/zope/wiki/Eggmonkey
● https://docs.python.org/3.1/distutils/uploading.html
● http://mrtopf.de/blog/en/a-small-introduction-to-python-eggs/
● https://docs.python.org/3/distutils/packageindex.html
● https://docs.python.org/3/distutils/setupscript.html#meta-data
● https://pypi.python.org/pypi?%3Aaction=list_classifiers
● https://docs.python.org/3/distutils/packageindex.html#pypirc
● https://pypi.python.org/pypi/zest.releaser
● https://pypi.python.org/pypi/jarn.mkrelease
● https://pypi.python.org/pypi/eea.eggmonkey
● https://pypi.python.org/pypi/collective.eggproxy
● https://pypi.python.org/pypi/ClueReleaseManager
● http://stackoverflow.com/questions/3220404/why-use-pip-over-easy-install
9. Alte întrebări?

More Related Content

What's hot

Deployment presentation
Deployment presentationDeployment presentation
Deployment presentationCorey Purcell
 
Chef 0.10 Overview
Chef 0.10 OverviewChef 0.10 Overview
Chef 0.10 OverviewMatt Ray
 
JavaScript tips - Unnest callbacks and method declarations
JavaScript tips - Unnest callbacks and method declarationsJavaScript tips - Unnest callbacks and method declarations
JavaScript tips - Unnest callbacks and method declarationsexponential_io
 
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...Глеб Тарасов
 
Composer 經典食譜
Composer 經典食譜Composer 經典食譜
Composer 經典食譜Shengyou Fan
 
Webinar - Managing Files with Puppet
Webinar - Managing Files with PuppetWebinar - Managing Files with Puppet
Webinar - Managing Files with PuppetOlinData
 
GIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APPGIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APPPavel Tyk
 
AnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and TricksAnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and Tricksjimi-c
 
Kotlin 讀書會第三梯次第一章
Kotlin 讀書會第三梯次第一章Kotlin 讀書會第三梯次第一章
Kotlin 讀書會第三梯次第一章Shengyou Fan
 
Tracking large game assets with Git LFS
Tracking large game assets with Git LFSTracking large game assets with Git LFS
Tracking large game assets with Git LFSTim Pettersen
 
Do you know all of Puppet?
Do you know all of Puppet?Do you know all of Puppet?
Do you know all of Puppet?Julien Pivotto
 
V2 and beyond
V2 and beyondV2 and beyond
V2 and beyondjimi-c
 
Webinar - Windows Application Management with Puppet
Webinar - Windows Application Management with PuppetWebinar - Windows Application Management with Puppet
Webinar - Windows Application Management with PuppetOlinData
 
Tracking huge files with Git LFS - LinuxCon 2016
Tracking huge files with Git LFS - LinuxCon 2016Tracking huge files with Git LFS - LinuxCon 2016
Tracking huge files with Git LFS - LinuxCon 2016Tim Pettersen
 
GTFO: Git Theory For OpenSource
GTFO: Git Theory For OpenSourceGTFO: Git Theory For OpenSource
GTFO: Git Theory For OpenSourceForest Mars
 

What's hot (20)

Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation
 
MongoSV 2011
MongoSV 2011MongoSV 2011
MongoSV 2011
 
Expression Language 3.0
Expression Language 3.0Expression Language 3.0
Expression Language 3.0
 
Chef 0.10 Overview
Chef 0.10 OverviewChef 0.10 Overview
Chef 0.10 Overview
 
JavaScript tips - Unnest callbacks and method declarations
JavaScript tips - Unnest callbacks and method declarationsJavaScript tips - Unnest callbacks and method declarations
JavaScript tips - Unnest callbacks and method declarations
 
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
 
Bento lunch talk
Bento   lunch talkBento   lunch talk
Bento lunch talk
 
Symfony Performance
Symfony PerformanceSymfony Performance
Symfony Performance
 
Composer 經典食譜
Composer 經典食譜Composer 經典食譜
Composer 經典食譜
 
Webinar - Managing Files with Puppet
Webinar - Managing Files with PuppetWebinar - Managing Files with Puppet
Webinar - Managing Files with Puppet
 
GIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APPGIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APP
 
AnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and TricksAnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and Tricks
 
Kotlin 讀書會第三梯次第一章
Kotlin 讀書會第三梯次第一章Kotlin 讀書會第三梯次第一章
Kotlin 讀書會第三梯次第一章
 
Tracking large game assets with Git LFS
Tracking large game assets with Git LFSTracking large game assets with Git LFS
Tracking large game assets with Git LFS
 
Do you know all of Puppet?
Do you know all of Puppet?Do you know all of Puppet?
Do you know all of Puppet?
 
V2 and beyond
V2 and beyondV2 and beyond
V2 and beyond
 
Webinar - Windows Application Management with Puppet
Webinar - Windows Application Management with PuppetWebinar - Windows Application Management with Puppet
Webinar - Windows Application Management with Puppet
 
GiTFO
GiTFOGiTFO
GiTFO
 
Tracking huge files with Git LFS - LinuxCon 2016
Tracking huge files with Git LFS - LinuxCon 2016Tracking huge files with Git LFS - LinuxCon 2016
Tracking huge files with Git LFS - LinuxCon 2016
 
GTFO: Git Theory For OpenSource
GTFO: Git Theory For OpenSourceGTFO: Git Theory For OpenSource
GTFO: Git Theory For OpenSource
 

Viewers also liked

PyCon US 2009: Challenges and Opportunities for Python
PyCon US 2009: Challenges and Opportunities for PythonPyCon US 2009: Challenges and Opportunities for Python
PyCon US 2009: Challenges and Opportunities for PythonTed Leung
 
Marek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with BuildoutMarek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with Buildoutmarekkuziel
 
Buildout: Fostering Repeatability
Buildout: Fostering RepeatabilityBuildout: Fostering Repeatability
Buildout: Fostering RepeatabilityClayton Parker
 
Zen and the Art of Python
Zen and the Art of PythonZen and the Art of Python
Zen and the Art of PythonClayton Parker
 
Using Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsUsing Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsClayton Parker
 

Viewers also liked (6)

PyCon US 2009: Challenges and Opportunities for Python
PyCon US 2009: Challenges and Opportunities for PythonPyCon US 2009: Challenges and Opportunities for Python
PyCon US 2009: Challenges and Opportunities for Python
 
Marek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with BuildoutMarek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with Buildout
 
Buildout future
Buildout futureBuildout future
Buildout future
 
Buildout: Fostering Repeatability
Buildout: Fostering RepeatabilityBuildout: Fostering Repeatability
Buildout: Fostering Repeatability
 
Zen and the Art of Python
Zen and the Art of PythonZen and the Art of Python
Zen and the Art of Python
 
Using Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsUsing Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python Projects
 

Similar to Python eggs (RO)

Welcome to the Cheese Shop: setuptools, virtualenv and PyPUG
Welcome to the Cheese Shop: setuptools, virtualenv and PyPUGWelcome to the Cheese Shop: setuptools, virtualenv and PyPUG
Welcome to the Cheese Shop: setuptools, virtualenv and PyPUGdwvisser
 
20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortestingKazuhiro Oinuma
 
Virtualenv
VirtualenvVirtualenv
VirtualenvWEBdeBS
 
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Codemotion
 
Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015ice799
 
TYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 core
TYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 coreTYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 core
TYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 coretimohund
 
From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...Yury Bushmelev
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic  Perl ProgrammerModern Perl for the Unfrozen Paleolithic  Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
 
Practical Pig and PigUnit (Michael Noll, Verisign)
Practical Pig and PigUnit (Michael Noll, Verisign)Practical Pig and PigUnit (Michael Noll, Verisign)
Practical Pig and PigUnit (Michael Noll, Verisign)Swiss Big Data User Group
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonCodeSyntax
 
Using the pip package manager for Odoo
Using the pip package manager for OdooUsing the pip package manager for Odoo
Using the pip package manager for OdooOdoo
 
Using the "pip" package manager for Odoo/OpenERP - Opendays 2014
Using the "pip" package manager for Odoo/OpenERP - Opendays 2014Using the "pip" package manager for Odoo/OpenERP - Opendays 2014
Using the "pip" package manager for Odoo/OpenERP - Opendays 2014Daniel Reis
 
Testing your infallibleness
Testing your infalliblenessTesting your infallibleness
Testing your infalliblenessCorey Osman
 
Acceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAcceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAsko Soukka
 
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)Puppet
 
Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015ice799
 

Similar to Python eggs (RO) (20)

Python+gradle
Python+gradlePython+gradle
Python+gradle
 
Welcome to the Cheese Shop: setuptools, virtualenv and PyPUG
Welcome to the Cheese Shop: setuptools, virtualenv and PyPUGWelcome to the Cheese Shop: setuptools, virtualenv and PyPUG
Welcome to the Cheese Shop: setuptools, virtualenv and PyPUG
 
20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting
 
Virtualenv
VirtualenvVirtualenv
Virtualenv
 
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
 
Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015
 
TYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 core
TYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 coreTYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 core
TYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 core
 
From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic  Perl ProgrammerModern Perl for the Unfrozen Paleolithic  Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 
Practical Pig and PigUnit (Michael Noll, Verisign)
Practical Pig and PigUnit (Michael Noll, Verisign)Practical Pig and PigUnit (Michael Noll, Verisign)
Practical Pig and PigUnit (Michael Noll, Verisign)
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in python
 
Using the pip package manager for Odoo
Using the pip package manager for OdooUsing the pip package manager for Odoo
Using the pip package manager for Odoo
 
Using the "pip" package manager for Odoo/OpenERP - Opendays 2014
Using the "pip" package manager for Odoo/OpenERP - Opendays 2014Using the "pip" package manager for Odoo/OpenERP - Opendays 2014
Using the "pip" package manager for Odoo/OpenERP - Opendays 2014
 
Plone Einführung
Plone EinführungPlone Einführung
Plone Einführung
 
Testing your infallibleness
Testing your infalliblenessTesting your infallibleness
Testing your infallibleness
 
Acceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAcceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and selenium
 
Python x Django
Python x DjangoPython x Django
Python x Django
 
Salt stack
Salt stackSalt stack
Salt stack
 
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
 
Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015
 

More from Alin Voinea

EEA & Eau de Web Front-end add-ons - Plone conference 2023
EEA & Eau de Web Front-end add-ons - Plone conference 2023 EEA & Eau de Web Front-end add-ons - Plone conference 2023
EEA & Eau de Web Front-end add-ons - Plone conference 2023 Alin Voinea
 
EEA Faceted Navigation and Plone 6.pdf
EEA Faceted Navigation and Plone 6.pdfEEA Faceted Navigation and Plone 6.pdf
EEA Faceted Navigation and Plone 6.pdfAlin Voinea
 
EEA Volto Add-ons - Plone Conference 2020
EEA Volto Add-ons - Plone Conference 2020EEA Volto Add-ons - Plone Conference 2020
EEA Volto Add-ons - Plone Conference 2020Alin Voinea
 
Plone 6 / Volto Dexterity Content Types - Schema & Layout
Plone 6 / Volto Dexterity Content Types - Schema & LayoutPlone 6 / Volto Dexterity Content Types - Schema & Layout
Plone 6 / Volto Dexterity Content Types - Schema & LayoutAlin Voinea
 
Docker & rancher
Docker & rancherDocker & rancher
Docker & rancherAlin Voinea
 
Continuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and Rancher
Continuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and RancherContinuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and Rancher
Continuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and RancherAlin Voinea
 
Faceted navigation in Plone 5
Faceted navigation in Plone 5Faceted navigation in Plone 5
Faceted navigation in Plone 5Alin Voinea
 
Docker and plone
Docker and ploneDocker and plone
Docker and ploneAlin Voinea
 
Plone and docker
Plone and dockerPlone and docker
Plone and dockerAlin Voinea
 
Developing Single Page Applications on Plone using AngularJS
Developing Single Page Applications on Plone using AngularJSDeveloping Single Page Applications on Plone using AngularJS
Developing Single Page Applications on Plone using AngularJSAlin Voinea
 
Responsive design in plone
Responsive design in ploneResponsive design in plone
Responsive design in ploneAlin Voinea
 
Plone and docker
Plone and dockerPlone and docker
Plone and dockerAlin Voinea
 
Display eea’s semantic content with elasticsearch and node.js applications sh...
Display eea’s semantic content with elasticsearch and node.js applications sh...Display eea’s semantic content with elasticsearch and node.js applications sh...
Display eea’s semantic content with elasticsearch and node.js applications sh...Alin Voinea
 
New EEA Plone Add-ons
New EEA Plone Add-onsNew EEA Plone Add-ons
New EEA Plone Add-onsAlin Voinea
 
Data visualization in plone
Data visualization in ploneData visualization in plone
Data visualization in ploneAlin Voinea
 

More from Alin Voinea (16)

EEA & Eau de Web Front-end add-ons - Plone conference 2023
EEA & Eau de Web Front-end add-ons - Plone conference 2023 EEA & Eau de Web Front-end add-ons - Plone conference 2023
EEA & Eau de Web Front-end add-ons - Plone conference 2023
 
EEA Faceted Navigation and Plone 6.pdf
EEA Faceted Navigation and Plone 6.pdfEEA Faceted Navigation and Plone 6.pdf
EEA Faceted Navigation and Plone 6.pdf
 
EEA Volto Add-ons - Plone Conference 2020
EEA Volto Add-ons - Plone Conference 2020EEA Volto Add-ons - Plone Conference 2020
EEA Volto Add-ons - Plone Conference 2020
 
Plone 6 / Volto Dexterity Content Types - Schema & Layout
Plone 6 / Volto Dexterity Content Types - Schema & LayoutPlone 6 / Volto Dexterity Content Types - Schema & Layout
Plone 6 / Volto Dexterity Content Types - Schema & Layout
 
Docker & rancher
Docker & rancherDocker & rancher
Docker & rancher
 
Continuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and Rancher
Continuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and RancherContinuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and Rancher
Continuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and Rancher
 
Faceted navigation in Plone 5
Faceted navigation in Plone 5Faceted navigation in Plone 5
Faceted navigation in Plone 5
 
Docker and plone
Docker and ploneDocker and plone
Docker and plone
 
Plone and docker
Plone and dockerPlone and docker
Plone and docker
 
Kotti CMS 101
Kotti CMS 101Kotti CMS 101
Kotti CMS 101
 
Developing Single Page Applications on Plone using AngularJS
Developing Single Page Applications on Plone using AngularJSDeveloping Single Page Applications on Plone using AngularJS
Developing Single Page Applications on Plone using AngularJS
 
Responsive design in plone
Responsive design in ploneResponsive design in plone
Responsive design in plone
 
Plone and docker
Plone and dockerPlone and docker
Plone and docker
 
Display eea’s semantic content with elasticsearch and node.js applications sh...
Display eea’s semantic content with elasticsearch and node.js applications sh...Display eea’s semantic content with elasticsearch and node.js applications sh...
Display eea’s semantic content with elasticsearch and node.js applications sh...
 
New EEA Plone Add-ons
New EEA Plone Add-onsNew EEA Plone Add-ons
New EEA Plone Add-ons
 
Data visualization in plone
Data visualization in ploneData visualization in plone
Data visualization in plone
 

Recently uploaded

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Python eggs (RO)

  • 1. Python Eggs Alin Voinea @ Eau de Web
  • 2. Cuprins ● Index egg-uri Python ● Structura unui egg Python ● Utilitare şi şabloane pentru crearea unui egg ● Distribuirea unui egg ● Automatizare ● Proxy eggs server / PyPI mirror ● Custom / Private eggs server
  • 3. 1. Python Package Index (pypi) “O metoda* mai simpla de a distribui şi instala un pachet python” pypi.python.org *similar cu RPM, DEB, APK, IPK, etc
  • 4. 1. Python Package Index (pypi) $ pip* install helloworld $ pip* install http://eggrepo.com/helloworld *easy_install
  • 5. 2. Structura unui egg helloworld/ setup.py README.rst src/ __init__.py
  • 6. 3. Utilitare şi şablonane ● zopeskel ● templer.core
  • 7. 3.1 ZopeSkel $ pip install zopeskel $ zopeskel --list-templates $ zopeskel basic_namespace
  • 8. 3.1 Custom ZopeSkel templates $ pip install eea.package $ zopeskel --list-templates $ zopeskel eea
  • 9. 4. Distribuirea unui egg python ● Direct Install $ python setup.py install ● Upload PyPI $ python setup.py register -r pypi $ python setup.py sdist upload $ pip install hello.world
  • 10. 4.1 setup.py $ vim setup.py from setuptools import setup setup( name=”hello.world”, version=”1.0”, … )
  • 11. 4.1 setup.py ● Metadata: ○ https://docs.python.org/3/distutils/setupscript.html#meta-data ● Classifiers: ○ https://pypi.python.org/pypi?%3Aaction=list_classifiers
  • 12. 4.1 .pypirc* https://docs.python.org/3/distutils/packageindex.html#pypirc $ vim /home/user/.pypirc [distutils] index-servers = pypi [pypi] repository: http://pypi.python.org/pypi/ username: gigel password: secret
  • 13. 5 Automatizare ● zest.releaser ● jarn.mkrelease ● eea.eggmonkey
  • 14. 5.1 zest.releaser “Software releasing made easy and repeatable” $ pip install zest.releaser $ cd hello.world $ prerelease $ release $ postrelease $ fullrelease
  • 15. 5.2 jarn.mkrelease “Python egg releaser” $ pip install jarn.mkrelease $ vim /home/user/.mkrelease [defaults] distdefault = eea [aliases] all = pypi plone $ mkrelease -d all hello.world
  • 16. 5.3 eea.eggmonkey “Automate releasing eggs with jarn.mkrelease” $ vim buildout.cfg [buildout] extensions += mr.developer eea.eggmonkey $ bin/monkey -d eea hello.world $ bin/print_unreleased_packages
  • 17. 6. Mirroring “collective.eggproxy” $ vim buildout.cfg [buildout] index = http://eggrepo.eea.europa.eu/pypi/
  • 18. 7. Custom eggs server “ClueReleaseManager” $ vim buildout.cfg [buildout] find-links = http://eggrepo.eea.europa.eu/simple $ python setup.py register -r http://eggrepo.eea.europa.eu
  • 19. 8. Legături externe ● http://taskman.eionet.europa.eu/projects/zope/wiki/WebDevelopmentCycle ● http://taskman.eionet.europa.eu/projects/zope/wiki/HowToReleaseAnEgg ● http://taskman.eionet.europa.eu/projects/zope/wiki/Eggmonkey ● https://docs.python.org/3.1/distutils/uploading.html ● http://mrtopf.de/blog/en/a-small-introduction-to-python-eggs/ ● https://docs.python.org/3/distutils/packageindex.html ● https://docs.python.org/3/distutils/setupscript.html#meta-data ● https://pypi.python.org/pypi?%3Aaction=list_classifiers ● https://docs.python.org/3/distutils/packageindex.html#pypirc ● https://pypi.python.org/pypi/zest.releaser ● https://pypi.python.org/pypi/jarn.mkrelease ● https://pypi.python.org/pypi/eea.eggmonkey ● https://pypi.python.org/pypi/collective.eggproxy ● https://pypi.python.org/pypi/ClueReleaseManager ● http://stackoverflow.com/questions/3220404/why-use-pip-over-easy-install