-->
Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

Wednesday, July 10, 2019

Python - Creating Module Packages


Intent

Beyond importing someone else's packages, sometimes it helps to make your own. This will assist in the understanding of how to do so.

I. It helps to have the pep8 compliance package to test.

py -3 -m pip install pytest
py -3 -m pip install pytest-pep8

Next step, make sure your module is pip complaint


  1. cd to your module and run…
  2. py.test --pep8 vsearch.py

Common Errors Found

  1. Not having two blank lines between each function
  2. Not having a white space following a colon
  3. Using tabs to indent. It prefers 4     blank   manual    lines

Note the ^ will mark where in the code it believes things are out of compliance.




II. Next a setup.py and a README.txt file are required

 

Creating setup.py

 

Textbook example:
from setuptools import setup

setup(name='vsearch', version='1.01', description='The Head First Python Search Tools', author='HF Python 2e', author_email='hfpy2e@gmail.com', url='headfirstlabs.com', py_modules=['vsearch'],)

Creating README.txt

Just put in whatever you want. So long as the README exists.

III. Run setup.py as the setup distribution

In the command line run as follows: 

py -3 setup.py sdist

IV. Install your new module from within it's distribution



Example:

py -3 -m pip install [moduleName]-1.0.zip

V. Now you can run your module. Don't forget to run it as something, or you'll have to call it by what it is. Have fun! :)

Python Basic Data Structures and Common Commands Cheatsheet


Lists
[]
list
append, extend, pop, index
Tuples (immutable)
() or {},
tuple

Sets
{'',}


Dictionary
{}
dict


List | Common Commands:

Append | For adding a single element. If you give it a list, it'll add a list of a list
Extend | for merging a lot of elements
Clear | for clearing the element
Index | for searching the position of an item, first occurrence.
Remove | for removing a specific item, first occurrence
pop | for removing a single item from at a INDEX position (AND returning it if need be). 
Copy | For creating a new object. Anyway else will just reference the old object
Reverse | Flips things over
Count | Built in Frequency Counter


Examples




Iterating in Python Sampler


for i in [1, 2, 3]:
print (i)

for ch in "Yay!":
print(ch)

for num in range(5):
print('David is good at this!')

help(range)


phrase="Don't Panic!"

All the Letters

phrase

Every Third Letter up to index location 10

phrase[0:10:3]

All letters up to but not including the 10th
phrase[:10]

Only the first three letters
phrase[3:]

Every Second Letter
phrase[::2]

How to count backwards 1
backwords = phrase[::-1}
''.join(backwords)

>>> phrase[::-1]
"!cinap t'noD"

How to count backwards 2
>>> phrase = "The Sky is Blue"
>>> words = phrase.split(' ')
>>> words
['The', 'Sky', 'is', 'Blue']
>>> words[::-1]
['Blue', 'is', 'Sky', 'The']

Thursday, January 5, 2017

Python and Core Python Packages for Data Science

Python

Python is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. Python combines remarkable power with very clear syntax. It has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++. It is also usable as an extension language for applications that need a programmable interface. Finally, Python is portable: it runs on many Unix variants, on the Mac, and on PCs under MS-DOS, Windows, Windows NT, and OS/2.

From <https://docs.python.org/2.7/faq/general.html>

Enthought Canopy

Enthought Canopy is a comprehensive Python analysis environment that provides easy installation of over 450 core scientific analytic and Python packages, creating a robust platform you can explore, develop, and visualize on. In addition to its pre-built, tested Python distribution, Enthought Canopy has valuable tools for iterative data analysis, visualization and application development including:

From <https://www.enthought.com/products/canopy/>

Spark

Fast and general engine for large-scale data processing. Lets you load data into RDDs (resilient distributed databases), and auto optimally spreads it out to a cluster of machines.

numpy

NumPy is the fundamental package for scientific computing in Python. It is a Python library that provides a multidimensional array object, various derived objects (such as masked arrays and matrices), and an assortment of routines for fast operations on arrays, including mathematical, logical, shape manipulation, sorting, selecting, I/O, discrete Fourier transforms, basic linear algebra, basic statistical operations, random simulation and much more.
At the core of the NumPy package, is the ndarray object. This encapsulates n-dimensional arrays of homogeneous data types, with many operations being performed in compiled code for performance.

From <https://docs.scipy.org/doc/numpy/user/whatisnumpy.html>

matplotlib

matplotlib is a library for making 2D plots of arrays in Python. Although it has its origins in emulating the MATLAB® [1] graphics commands, it is independent of MATLAB, and can be used in a Pythonic, object oriented way. Although matplotlib is written primarily in pure Python, it makes heavy use of NumPy and other extension code to provide good performance even for large arrays.
matplotlib is designed with the philosophy that you should be able to create simple plots with just a few commands, or just one! If you want to see a histogram of your data, you shouldn’t need to instantiate objects, call methods, set properties, and so on; it should just work.

From <http://matplotlib.org/users/intro.html>

SciPy

 

 

SciPy is a collection of mathematical algorithms and convenience functions built on the Numpy extension of Python. It adds significant power to the interactive Python session by providing the user with high-level commands and classes for manipulating and visualizing data. With SciPy an interactive Python session becomes a data-processing and system-prototyping environment rivaling systems such as MATLAB, IDL, Octave, R-Lab, and SciLab

From <https://docs.scipy.org/doc/scipy/reference/tutorial/general.html>

pandas

 

pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python. Additionally, it has the broader goal of becoming the most powerful and flexible open source data analysis / manipulation tool available in any language. It is already well on its way toward this goal.

From <http://pandas.pydata.org/pandas-docs/stable/?v=20161222083801>

urllib3

urllib3 is a powerful, sanity-friendly HTTP client for Python. 
  • Thread safety.
  • Connection pooling.
  • Client-side SSL/TLS verification.
  • File uploads with multipart encoding.
  • Helpers for retrying requests and dealing with HTTP redirects.
  • Support for gzip and deflate encoding.
  • Proxy support for HTTP and SOCKS.
  • 100% test coverage.

From <https://urllib3.readthedocs.io/en/latest/>

''

Installing Python Packages

Intent

How to install python packages in Pycharm, Canopy, and potentially more.

Pycharm

  1. Hit 'Ctrl+Alt+S' to open up settings
  2. Navigate to Project Interpreter

  1. Hit the + symbol and browse for packages

  1. PITFALL: Don't forget to upgrade packages. In this case, couldn't install matlib without upgrading pip

Canopy

  1. From the Enthought Canopy frontpage, select 'Project Manager'

  1. Use the search bar to find packages and upgrade them