Suche senden
Hochladen
Building an open source python application the right way
•
7 gefällt mir
•
697 views
Kiran Gangadharan
Folgen
Best practices to be followed while building an open source Python application.
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 53
Empfohlen
Poing: a coder’s take on protein modelling
Poing: a coder’s take on protein modelling
Biogeeks
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in Django
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in Django
Casey Kinsey
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
brian d foy
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
Josh Justice
Django strategy-test
Django strategy-test
Royce Haynes
Auditing Development Guidelines in GitHub Repositories
Auditing Development Guidelines in GitHub Repositories
Evgeny Poberezkin
Top 30 Scalability Mistakes
Top 30 Scalability Mistakes
John Coggeshall
Top 10 Scalability Mistakes
Top 10 Scalability Mistakes
John Coggeshall
Empfohlen
Poing: a coder’s take on protein modelling
Poing: a coder’s take on protein modelling
Biogeeks
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in Django
DjangoCon 2013 - How to Write Fast and Efficient Unit Tests in Django
Casey Kinsey
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
brian d foy
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
Josh Justice
Django strategy-test
Django strategy-test
Royce Haynes
Auditing Development Guidelines in GitHub Repositories
Auditing Development Guidelines in GitHub Repositories
Evgeny Poberezkin
Top 30 Scalability Mistakes
Top 30 Scalability Mistakes
John Coggeshall
Top 10 Scalability Mistakes
Top 10 Scalability Mistakes
John Coggeshall
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Jay Aho
How do we do it
How do we do it
Peter Samoilov
Unit Test Lab - Why Write Unit Tests?
Unit Test Lab - Why Write Unit Tests?
Danny van Kasteel
Testing Legacy Apps
Testing Legacy Apps
Dawn Code
Meteor
Meteor
IT Weekend
PHP unit testing - good and bad practices
PHP unit testing - good and bad practices
Konstantin Stefanov
Sustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey Shannahan
QA or the Highway
iHale Milestone 1 Feedback
iHale Milestone 1 Feedback
Philip Johnson
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
Cameron Presley
Keeping lab notes as a software developer
Keeping lab notes as a software developer
James McKay
The Engineer's Playbook: Starting a New Role
The Engineer's Playbook: Starting a New Role
Cameron Presley
TestWorksConf: Experience exploratory testing
TestWorksConf: Experience exploratory testing
Maaret Pyhäjärvi
Visual Studio tricks every dot net developer should know
Visual Studio tricks every dot net developer should know
Dror Helper
Patterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsite
Anand Ramdeo
The Perfect Neos Project Setup
The Perfect Neos Project Setup
Karsten Dambekalns
Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018
Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018
Allen Geer
Tampere Testing Days: Exploratory Testing an API
Tampere Testing Days: Exploratory Testing an API
Maaret Pyhäjärvi
TestWorksConf: Exploratory Testing an API in Mob
TestWorksConf: Exploratory Testing an API in Mob
Maaret Pyhäjärvi
11 rules for programmer should live by
11 rules for programmer should live by
Ye Win
Accelerate the ROI of PHP in your Enterprise
Accelerate the ROI of PHP in your Enterprise
Enterprise PHP Center
Automated tests
Automated tests
Damian Sromek
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
Lorna Mitchell
Weitere ähnliche Inhalte
Was ist angesagt?
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Jay Aho
How do we do it
How do we do it
Peter Samoilov
Unit Test Lab - Why Write Unit Tests?
Unit Test Lab - Why Write Unit Tests?
Danny van Kasteel
Testing Legacy Apps
Testing Legacy Apps
Dawn Code
Meteor
Meteor
IT Weekend
PHP unit testing - good and bad practices
PHP unit testing - good and bad practices
Konstantin Stefanov
Sustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey Shannahan
QA or the Highway
iHale Milestone 1 Feedback
iHale Milestone 1 Feedback
Philip Johnson
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
Cameron Presley
Keeping lab notes as a software developer
Keeping lab notes as a software developer
James McKay
The Engineer's Playbook: Starting a New Role
The Engineer's Playbook: Starting a New Role
Cameron Presley
TestWorksConf: Experience exploratory testing
TestWorksConf: Experience exploratory testing
Maaret Pyhäjärvi
Visual Studio tricks every dot net developer should know
Visual Studio tricks every dot net developer should know
Dror Helper
Patterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsite
Anand Ramdeo
The Perfect Neos Project Setup
The Perfect Neos Project Setup
Karsten Dambekalns
Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018
Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018
Allen Geer
Tampere Testing Days: Exploratory Testing an API
Tampere Testing Days: Exploratory Testing an API
Maaret Pyhäjärvi
TestWorksConf: Exploratory Testing an API in Mob
TestWorksConf: Exploratory Testing an API in Mob
Maaret Pyhäjärvi
11 rules for programmer should live by
11 rules for programmer should live by
Ye Win
Was ist angesagt?
(19)
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
How do we do it
How do we do it
Unit Test Lab - Why Write Unit Tests?
Unit Test Lab - Why Write Unit Tests?
Testing Legacy Apps
Testing Legacy Apps
Meteor
Meteor
PHP unit testing - good and bad practices
PHP unit testing - good and bad practices
Sustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey Shannahan
iHale Milestone 1 Feedback
iHale Milestone 1 Feedback
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
Keeping lab notes as a software developer
Keeping lab notes as a software developer
The Engineer's Playbook: Starting a New Role
The Engineer's Playbook: Starting a New Role
TestWorksConf: Experience exploratory testing
TestWorksConf: Experience exploratory testing
Visual Studio tricks every dot net developer should know
Visual Studio tricks every dot net developer should know
Patterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsite
The Perfect Neos Project Setup
The Perfect Neos Project Setup
Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018
Continuously testing govt.nz - DevOpsDays Ignite Wellington 2018
Tampere Testing Days: Exploratory Testing an API
Tampere Testing Days: Exploratory Testing an API
TestWorksConf: Exploratory Testing an API in Mob
TestWorksConf: Exploratory Testing an API in Mob
11 rules for programmer should live by
11 rules for programmer should live by
Ähnlich wie Building an open source python application the right way
Accelerate the ROI of PHP in your Enterprise
Accelerate the ROI of PHP in your Enterprise
Enterprise PHP Center
Automated tests
Automated tests
Damian Sromek
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
Lorna Mitchell
System design for Web Application
System design for Web Application
Michael Choi
Prototyping & User Testing
Prototyping & User Testing
Laura Levisay
Fundamentals of Open Source Development
Fundamentals of Open Source Development
OSU Open Source Lab
Learn to Code with MIT App Inventor ( PDFDrive ).pdf
Learn to Code with MIT App Inventor ( PDFDrive ).pdf
NemoPalleschi
Managing Phone Dev Projects
Managing Phone Dev Projects
John McKerrell
Best practices for using open source software in the enterprise
Best practices for using open source software in the enterprise
Marcel de Vries
The Professional Programmer
The Professional Programmer
Dave Cross
W make104
W make104
Nilesh Bangar
CTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptx
OduniyiAdebola
20171003 lancaster data conversations Chue-Hong
20171003 lancaster data conversations Chue-Hong
Lancaster University Library
Better Functional Design through TDD
Better Functional Design through TDD
Phil Calçado
Learn Django Tips, Tricks & Techniques for Developers
Learn Django Tips, Tricks & Techniques for Developers
Mars Devs
Django Article V0
Django Article V0
Udi Bauman
MenloHacks Workshop 2019
MenloHacks Workshop 2019
Bruce Lin
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
rupeshchanchal
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
Tharindu Weerasinghe
Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...
oiisdp
Ähnlich wie Building an open source python application the right way
(20)
Accelerate the ROI of PHP in your Enterprise
Accelerate the ROI of PHP in your Enterprise
Automated tests
Automated tests
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
System design for Web Application
System design for Web Application
Prototyping & User Testing
Prototyping & User Testing
Fundamentals of Open Source Development
Fundamentals of Open Source Development
Learn to Code with MIT App Inventor ( PDFDrive ).pdf
Learn to Code with MIT App Inventor ( PDFDrive ).pdf
Managing Phone Dev Projects
Managing Phone Dev Projects
Best practices for using open source software in the enterprise
Best practices for using open source software in the enterprise
The Professional Programmer
The Professional Programmer
W make104
W make104
CTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptx
20171003 lancaster data conversations Chue-Hong
20171003 lancaster data conversations Chue-Hong
Better Functional Design through TDD
Better Functional Design through TDD
Learn Django Tips, Tricks & Techniques for Developers
Learn Django Tips, Tricks & Techniques for Developers
Django Article V0
Django Article V0
MenloHacks Workshop 2019
MenloHacks Workshop 2019
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...
Kürzlich hochgeladen
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Padma Pradeep
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Softradix Technologies
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
BookNet Canada
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Safe Software
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
comworks
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April Automation LPDG
MarianaLemus7
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Scott Keck-Warren
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Memoori
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Scott Keck-Warren
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions
Kürzlich hochgeladen
(20)
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - 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
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April Automation LPDG
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Building an open source python application the right way
1.
Building an open
source Python application the right way
2.
Hi.
3.
I’m Kiran. Hacker Programmer Open Source
enthusiast Computer Science fanboy
4.
Currently, having an
affair with Python
5.
Why follow Guidelines Conventions Best Practices
6.
Your code is Open
Source !
7.
What does that
mean You ask ?
8.
Code available to People
will everyone start using it People will(might) try to help
9.
So, what do
I do ?
10.
Make it easier
for people to use your application
11.
How ?
12.
Let’s start with basic
project structure
13.
14.
Let’s make it
simpler
15.
Application Tests Documentation Dependency Management Setup Publish Task Execution Extras
16.
Application
17.
Write good code. http://www.python.org/dev/peps/pep-0008/
18.
Don’t bloat your
code with classes Use them when required
19.
Use modules to architect your
application
20.
Tests
21.
“Code not tested
is broken by design” - Jacob Kaplan Moss
22.
Lots of ways
to Test your application
23.
unit tests Start with
simple
24.
py.test unittest Nose Most commonly used
25.
Documentation
26.
For small projects Code
is the documentation http://www.python.org/dev/peps/pep-0257/
27.
Sadly This is not scalable
28.
Use Sphinx http://sphinx-doc.org/
29.
HTML EPUB Automatic Syntax Highlighting PDF Plain Text Theming Support Man Pages LaTex Internationalisation
30.
31.
Dependency Management
32.
Project Dependencies requirements.txt
33.
then pip install -r
requirements.txt
34.
35.
Setup
36.
Pro Tip: Use Virtualenv to setup
your environment
37.
Why ? Test with
different Python versions Install dependencies inside environment No unnecessary namespace pollution Different environments and settings per project
38.
Publish
39.
Every project’s setup.py contains the
necessary information required for it’s installation
40.
Packages and uploads
your application to Python Package Index a.k.a PyPI
41.
setup( name='project name', version=myapp.__version__, description='project description
here', license=open("LICENSE").read(), author='author', author_email='email', url='project url', packages=['myapp'], include_package_data=True, classifiers=( 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Natural Language :: English', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python', 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.3', ), test_suite='tests', )
42.
Register at PyPI python
setup.py register Package and Upload application python setup.py sdist upload
43.
Install application on
any platform pip install myapp
44.
45.
Task Execution
46.
Use a Makefile to automate
multiple tasks and commands http://mrbook.org/tutorials/make/
47.
Extras (a.k.a enhancements)
48.
AUTHORS CHANGELOG CONTRIBUTING
49.
License is very important for open
source projects http://www.tldrlegal.com/
50.
Recap
51.
R C E P A Application Tests Documentation Dependency Management Setup Publish Task Execution Extras
52.
Questions ?
53.
Thank you ! @kirang89 http://kirang.in