matchbox Documentation

Size: px
Start display at page:

Download "matchbox Documentation"

Transcription

1 matchbox Documentation Release Clearcode.cc Oct 27, 2018

2

3 Contents 1 Package status 3 2 Package resources 5 3 Contents Glossary Rationale Usage Api Contribute to matchbox CHANGELOG License 15 Python Module Index 17 i

4 ii

5 Contents 1

6 2 Contents

7 CHAPTER 1 Package status Matchbox is a simple python library designed to make selecting object, or object s set based on required characteristics quick operation. No iterating, and no value checking on actual objects, just select and operations on dictionaries. 3

8 4 Chapter 1. Package status

9 CHAPTER 2 Package resources Bug tracker: Documentation: 5

10 6 Chapter 2. Package resources

11 CHAPTER 3 Contents 3.1 Glossary Entity - entity is an object indexed by MatchBox Characteristic - is an attribute that can describe entity Trait - Characteristic s trait, a value by which given characteristic can describe entity 3.2 Rationale Main reason MatchBox got created was to limit any data processing within the process of looking up for the desired set of entities. MatchBox achieves that through pre-processing entities and setting them up in a hashmap Assumptions Now, please note that matchbox makes some assumptions about entities it is processing Characteristics Every one of us, has up to two eyes, up to two hands, legs, has determined hair colour and height. It s not something that identifies us, but rather describes us. That s what we call characteristic. In database we d set up an index on a column with traits - values for given characteristic to make the search faster, here, each characteristic is being categorised by a separate MatchBox. Characteristic always have to have some trait It means that even the lack of characteristic trait is a trait of it s own. Entity with no trait for given characteristic simple means that it fits any trait the characteristic might have. Otherwise, if we d want to say, that this characteristic 7

12 has no trait, then the entity would be always left out of the search/matching, removed from resulting set, at least on selected few characteristic. Such object should not be used in the process which should the pool data smaller, and whole process this bit faster. And sometimes, even in a operations that get constantly repeated, even a nanosecond is a huge gain. A trait can never be both matched and missed There s no point of setting a characteristic trait to actually match, and other traits to missmatch on the same entity. Setting few selected traits that matches means also that all other traits doesn t fit this entity at all, and probably matching process would never get there anyway. It s like saying this couch is red, there s no point to say it s not pink Computational complexity For each box, the computational complexity can be quickly reviewed on python s wiki page Time Complexity Accessing key in a dictionary is at worst O(n) while average O(1), and difference between two sets s and t is O(len(s)) with average for the combination being O(1)+O(len(s)). 3.3 Usage To create a MatchBox, you have to decide which characteristic must it work on. box = MatchBox('colour') A MatchBox instance can work on only one characteristic at once. All entities that will be added and process by this matchbox, should have two attributes defined on them, which in combination create our characteristic. These are colour which should describe a colour and colour_match which should describe whether this entity is of that colour (or colours) or it s not that colour (or colours). In the example let s use entities defined by this collections.namedtuple(): HomeObject = namedtuple('homeobject', 'colour colour_match') chair = HomeObject('red', True) table = HomeObject('blue', True) wall = HomeObject('pink', False) paint_bucket = HomeObject('orange', True) And add these entities to our box. box.add(chair) box.add(table) box.add(wall) box.add(paint_bucket) match mehod performs simple set operation on passed collection, from which rejects a set of objects that MatchBox determine, won t fit red colour: home_objects = {chair, table, wall, paint_bucket} box.match(home_objects, 'red') Method match, will return set that consists of only chair and wall. chair because it explicitly says it s red, and wall because it says it s not pink, so it might as well be red or blue. Replacing red with pink in the above example will return an empty set from a box. 8 Chapter 3. Contents

13 3.4 Api Data structure that allows indexing includes and excludes of values. class matchbox.index.matchindex Bases: object An index for matching or mismatching of entities by hashable traits. It can answer one question - given a trait, what entities are excluded by it?. It can be used to filter a set of potential matches - not for general querying ( given a trait return all mathing entities ). When used as a filter, all entities in the input set must also be indexed by the MatchIndex to be fully filtered. Note: We can index entities by including or excluding them for given traits. Matching an object for some characteristic traits means that this object will match those values and it will NOT match any other traits. Mismatching an object for some traits means that this object will NOT match those traits and will match any other trait. It makes no sense for an entity to both match and mismatch the same characteristic. Data layout: We store: a dict that maps traits to a set of mismatches a set of entities indexed as matches. We don t store matching entities in any dict - instead if an entity is matched by a trait, it simply doesn t belong to the set of mismatches for this trait. Querying: When asked for entities to be filtered out by this index, we are given a value of the same kind as our index traits. This value can be: already indexed - we return the set of elements not matching it. The set contains entities to be rejected. previously unknown - we return the set of all objects that were indexed as matching. This is OK because: - Mismatched entities can be filtered out only by the traits they are indexed with so mismatches will be rejected by an unknown value. Matched entities should be rejected for everything else than traits they are indexed with. Note: Due to relying heavily on dictionaries and sets, MatchIndex indexes only hashable entities by one or more hashable traits. Example of indexing entities each by trait: Will result in an index: Entity Match Traits Ob1 Excluding 1 Ob2 Including 3 Ob3 Excluding 5 Ob4 Excluding Ob5 Including Api 9

14 Example of indexing entities each by multiple traits: Should result in this index: Initialize the index. add_match(entity, *traits) Add a matching entity to the index. Trait Mismatched entities 1 Ob1, Ob2 3 Ob5 5 Ob2, Ob3, Ob5 Any new Ob2, Ob5 Entity Match Traits Ob1 Excluding 1, 2 Ob2 Including 3, 4, 7 Ob3 Excluding 5, 6 Ob4 Excluding Ob5 Including 1, 7 Trait Mismatched entities 1 Ob1, Ob2 2 Ob1, Ob2, Ob5 3 Ob5 4 Ob5 5 Ob2, Ob3, Ob5 6 Ob2, Ob3, Ob5 7 Any other Ob2, Ob5 We have to maintain the constraints of the data layout: self.mismatch_unknown must still contain all matched entities each key of the index must mismatch all known matching entities except those this particular key explicitly includes For data layout description, see the class-level docstring. Parameters entity (collections.hashable) an object to be matching the values of traits_indexed_by traits (list) a list of hashable values to index the object with add_mismatch(entity, *traits) Add a mismatching entity to the index. We do this by simply adding the mismatch to the index. Parameters entity (collections.hashable) an object to be mismatching the values of traits_indexed_by 10 Chapter 3. Contents

15 traits (list) a list of hashable traits to index the entity with match(collection, trait) Filter out those entities from collection that do not match the trait. Note: collection should be a set of objects that have already been added to the index. But if the objects in the collection hadn t had given characteristics defined, they wouldn t be indexed, and won t get rejected either. Parameters collection (set) a set of entities that should be filtered by this index. trait (collections.hashable) a value of the same kind as the traits that entities in this index are indexed with Returns set of matching entities. Return type set mismatch(trait) Return a set of indexed entities that are mismatched by the trait. The returned set can be used for filtering by substracting it from another set created by a previous MatchIndex or other set operations. Parameters trait any hashable object that can be considered as characteristic trait for this MatchBox. Returns set of entities that doesn t match characteristic trait Return type set mismatch_unknown = None This set will keep matching entities. They do not match unknown traits. Used for self.index default value, that means any previously unknown trait. Match box - for indexing objects by their fields. class matchbox.box.matchbox(characteristic, *args, **kwargs) Bases: matchbox.index.matchindex MatchBox is a MatchIndex that can index objects by their fields. Initialise the box and set the attribute this box will be indexing objects on. Indexed entities are expected to have an attribute of the same name as characteristic that contains a trait by which entity is classified. Optionally entities may have a second attribute stating whether the object should be classified to match this trait or the object should be classified to mismatch the trait. This atribute, for each characteristic, is called {characteristic}_match. Note: Each indexed entity has to have at least one characteristic. Each indexed entity can be described by: given characteristic traits, by all but given characteristic traits, all possible traits 3.4. Api 11

16 Indexed entity can t be described by none possible characeristic trait - in this case the logic dictates that the entity will not ever match, hence it shouldn t even be considered in queries and make it to the collection. Parameters characteristic (str) value identifying the attribute MatchBox will index entites with. Optionally the objects may have a {characteristic}_match boolean attribute to determine whether the object should be indexed as a match or mismatch add(entity) Add entity to index. Parameters entity (object) single object to add to box s index extract_traits(entity) Extract data required to classify entity. Parameters entity (object) Returns namedtuple consisting of characteristic traits and match flag Return type matchbox.box.trait remove(entity) Remove entity from the MatchBox. Parameters entity (object) class matchbox.box.trait(traits, is_matching) Bases: tuple Create new instance of Trait(traits, is_matching) _asdict() Return a new OrderedDict which maps field names to their values. classmethod _make(iterable, new=<built-in method new of type object at 0xa385c0>, len=<built-in function len>) Make a new Trait object from a sequence or iterable _replace(**kwds) Return a new Trait object replacing specified fields with new values is_matching Alias for field number 1 traits Alias for field number Contribute to matchbox Thank you for taking time to contribute to matchbox! The following is a set of guidelines for contributing to matchbox.these are just guidelines, not rules, use your best judgment and feel free to propose changes to this document in a pull request Bug Reports 1. Use a clear and descriptive title for the issue - it ll be much easier to identify the problem. 2. Describe the steps to reproduce the problems in as many details as possible. 12 Chapter 3. Contents

17 3. If possible, provide a code snippet to reproduce the issue Feature requests/proposals 1. Use a clear and descriptive title for the proposal 2. Provide as detailed description as possible Use case is great to have 3. There ll be a bit of discussion for the feature. Don t worry, if it is to be accepted, we d like to support it, so we need to understand it thoroughly Pull requests 1. Start with a bug report or feature request 2. Use a clear and descriptive title 3. Provide a description - which issue does it refers to, nad what part of the issue is being solved 4. Be ready for code review :) Commits 1. Make sure commits are atomic, and each atomic change is being followed by test. 2. If the commit solves part of the issue reported, include refs #[Issue number] in a commit message. 3. If the commit solves whole issue reported, please refer to Closing issues via commit messages for ways to close issues when commits will be merged Coding style 1. All python coding style are being enforced by Pylama and configured in pylama.ini file. 2. Additional, not always mandatory checks are being performed by QuantifiedCode 3.6 CHANGELOG unreleased small code enhancement during adding matching entities to boxes remove method - ability to remove entity from already built box fix license information 3.6. CHANGELOG 13

18 added short glossary updated docs to reflect naming changes rewritten usage renamed various object s usages and index_object to entity [thanks Michael Sweeney] renamed characteristics_value and value references to traits, as in Characteristic s trait. [thanks Michael Sweeney] renamed MatchBox.not_matching method into MatchBox.mismatch - signature remained the same. only None and empty list will be treated as a value not used for matching added repr method to box renamed exclude_unknown to mismatch_unknown to clarify set s meaning Extracted indexing logic from MatchBox to a base class extended tests to cover python 3.5 merge MultiMatchBox into MatchBox - now anyone extending MatchBoxes will be able to work with value extractors rather than re-implementing MatchBoxes MatchBox - single value based Matching Box MultiMatchBox - multivalue based Matching Box package structure documentation 14 Chapter 3. Contents

19 CHAPTER 4 License Copyright (c) 2015 by matchbox authors and contributors. See authors This module is part of matchbox and is released under the MIT License (MIT): 15

20 16 Chapter 4. License

21 Python Module Index m matchbox.box, 11 matchbox.index, 9 17

22 18 Python Module Index

23 Index Symbols _asdict() (matchbox.box.trait method), 12 _make() (matchbox.box.trait class method), 12 _replace() (matchbox.box.trait method), 12 A add() (matchbox.box.matchbox method), 12 add_match() (matchbox.index.matchindex method), 10 add_mismatch() (matchbox.index.matchindex method), 10 E extract_traits() (matchbox.box.matchbox method), 12 I is_matching (matchbox.box.trait attribute), 12 M match() (matchbox.index.matchindex method), 11 MatchBox (class in matchbox.box), 11 matchbox.box (module), 11 matchbox.index (module), 9 MatchIndex (class in matchbox.index), 9 mismatch() (matchbox.index.matchindex method), 11 mismatch_unknown (matchbox.index.matchindex attribute), 11 R remove() (matchbox.box.matchbox method), 12 T Trait (class in matchbox.box), 12 traits (matchbox.box.trait attribute), 12 19

Gearthonic Documentation

Gearthonic Documentation Gearthonic Documentation Release 0.2.0 Timo Steidle August 11, 2016 Contents 1 Quickstart 3 2 Contents: 5 2.1 Usage................................................... 5 2.2 API....................................................

More information

Iterators & Generators

Iterators & Generators Iterators & Generators Sequences A sequence is something that you can: Index into Get the length of What are some examples of sequences? Sequences We ve been working with sequences all semester! Examples:

More information

PyTrie Documentation. Release 0.3. George Sakkis

PyTrie Documentation. Release 0.3. George Sakkis PyTrie Documentation Release 0.3 George Sakkis Jun 05, 2017 Contents 1 Usage 3 2 Reference documentation 5 2.1 Classes.................................................. 5 2.2 Trie methods...............................................

More information

Python Finite State Machine. Release 0.1.5

Python Finite State Machine. Release 0.1.5 Python Finite State Machine Release 0.1.5 Sep 15, 2017 Contents 1 Overview 1 1.1 Installation................................................ 1 1.2 Documentation..............................................

More information

CSC148 Recipe for Designing Classes

CSC148 Recipe for Designing Classes Part 1: Define the API for the class CSC148 Recipe for Designing Classes Download the sample code here: https://www.teach.cs.toronto.edu/~csc148h/fall/lectures/object-oriented-programming/common/course.

More information

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development; What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development; Why should I use a VCS? Repositories Types of repositories: Private - only you and the

More information

flask-dynamo Documentation

flask-dynamo Documentation flask-dynamo Documentation Release 0.1.2 Randall Degges January 22, 2018 Contents 1 User s Guide 3 1.1 Quickstart................................................ 3 1.2 Getting Help...............................................

More information

Archan. Release 2.0.1

Archan. Release 2.0.1 Archan Release 2.0.1 Jul 30, 2018 Contents 1 Archan 1 1.1 Features.................................................. 1 1.2 Installation................................................ 1 1.3 Documentation..............................................

More information

Text Input and Conditionals

Text Input and Conditionals Text Input and Conditionals Text Input Many programs allow the user to enter information, like a username and password. Python makes taking input from the user seamless with a single line of code: input()

More information

Beyond Blocks: Python Session #1

Beyond Blocks: Python Session #1 Beyond Blocks: Session #1 CS10 Spring 2013 Thursday, April 30, 2013 Michael Ball Beyond Blocks : : Session #1 by Michael Ball adapted from Glenn Sugden is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

More information

contribution-guide.org Release

contribution-guide.org Release contribution-guide.org Release August 06, 2018 Contents 1 About 1 1.1 Sources.................................................. 1 2 Submitting bugs 3 2.1 Due diligence...............................................

More information

Instrumental Documentation

Instrumental Documentation Instrumental Documentation Release 0.5.1 Matthew J Desmarais February 08, 2016 Contents 1 Introduction 3 1.1 What is instrumental?.......................................... 3 1.2 What s the problem?...........................................

More information

COMP519 Web Programming Lecture 20: Python (Part 4) Handouts

COMP519 Web Programming Lecture 20: Python (Part 4) Handouts COMP519 Web Programming Lecture 20: Python (Part 4) Handouts Ullrich Hustadt Department of Computer Science School of Electrical Engineering, Electronics, and Computer Science University of Liverpool Contents

More information

Pypeline Documentation

Pypeline Documentation Pypeline Documentation Release 0.2 Kyle Corbitt May 09, 2014 Contents 1 Contents 3 1.1 Installation................................................ 3 1.2 Quick Start................................................

More information

e24paymentpipe Documentation

e24paymentpipe Documentation e24paymentpipe Documentation Release 1.2.0 Burhan Khalid Oct 30, 2017 Contents 1 e24paymentpipe 3 1.1 Features.................................................. 3 1.2 Todo...................................................

More information

git-pr Release dev2+ng5b0396a

git-pr Release dev2+ng5b0396a git-pr Release 0.2.1.dev2+ng5b0396a Mar 20, 2017 Contents 1 Table Of Contents 3 1.1 Installation................................................ 3 1.2 Usage...................................................

More information

Airoscript-ng Documentation

Airoscript-ng Documentation Airoscript-ng Documentation Release 0.0.4 David Francos Cuartero January 22, 2015 Contents 1 Airoscript-ng 3 1.1 Features.................................................. 3 1.2 TODO..................................................

More information

RIPE Atlas Cousteau Documentation

RIPE Atlas Cousteau Documentation RIPE Atlas Cousteau Documentation Release 1.1 The RIPE Atlas Team February 09, 2016 Contents 1 Contents: 3 1.1 Requirements & Installation....................................... 3 1.2 Use & Examples.............................................

More information

Google Drive: Access and organize your files

Google Drive: Access and organize your files Google Drive: Access and organize your files Use Google Drive to store and access your files, folders, and Google Docs anywhere. Change a file on the web, your computer, or your mobile device, and it updates

More information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. Scheme Basics. scm> 5 5. scm> Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if

More information

6.189 Project 1. Readings. What to hand in. Project 1: The Game of Hangman. Get caught up on all the readings from this week!

6.189 Project 1. Readings. What to hand in. Project 1: The Game of Hangman. Get caught up on all the readings from this week! 6.189 Project 1 Readings Get caught up on all the readings from this week! What to hand in Print out your hangman code and turn it in Monday, Jaunary 10 at 2:10 PM. Be sure to write your name and section

More information

Poetaster. Release 0.1.1

Poetaster. Release 0.1.1 Poetaster Release 0.1.1 September 21, 2016 Contents 1 Overview 1 1.1 Installation................................................ 1 1.2 Documentation.............................................. 1 1.3

More information

OTX to MISP. Release 1.4.2

OTX to MISP. Release 1.4.2 OTX to MISP Release 1.4.2 May 11, 2018 Contents 1 Overview 1 1.1 Installation................................................ 1 1.2 Documentation.............................................. 1 1.3 Alienvault

More information

django-embed-video Documentation

django-embed-video Documentation django-embed-video Documentation Release 1.1.2-stable Juda Kaleta Nov 10, 2017 Contents 1 Installation & Setup 3 1.1 Installation................................................ 3 1.2 Setup...................................................

More information

pytest-benchmark Release 2.5.0

pytest-benchmark Release 2.5.0 pytest-benchmark Release 2.5.0 September 13, 2015 Contents 1 Overview 3 1.1 pytest-benchmark............................................ 3 2 Installation 7 3 Usage 9 4 Reference 11 4.1 pytest_benchmark............................................

More information

Creating Hair Textures with highlights using The GIMP

Creating Hair Textures with highlights using The GIMP Creating Hair Textures with highlights using The GIMP Most users out there use either Photoshop or Paint Shop Pro, but have any of you ever actually heard of The GIMP? It is a free image editing software,

More information

Python Overpass API Documentation

Python Overpass API Documentation Python Overpass API Documentation Release 0.4 PhiBo Apr 07, 2017 Contents 1 Introduction 3 1.1 Requirements............................................... 3 1.2 Installation................................................

More information

lazy-object-proxy Release 1.3.1

lazy-object-proxy Release 1.3.1 lazy-object-proxy Release 1.3.1 Jun 22, 2017 Contents 1 Overview 1 1.1 Installation................................................ 2 1.2 Documentation.............................................. 2

More information

Control of Flow. There are several Python expressions that control the flow of a program. All of them make use of Boolean conditional tests.

Control of Flow. There are several Python expressions that control the flow of a program. All of them make use of Boolean conditional tests. Control of Flow There are several Python expressions that control the flow of a program. All of them make use of Boolean conditional tests. If Statements While Loops Assert Statements 6 If Statements if

More information

pyshk Documentation Release Jeremy Low

pyshk Documentation Release Jeremy Low pyshk Documentation Release 1.1.0 Jeremy Low December 20, 2015 Contents 1 Warnings 3 2 Installation 5 3 Authentication Tutorial 7 3.1 Introduction............................................... 7 3.2

More information

NiFpga Example Documentation

NiFpga Example Documentation NiFpga Example Documentation Release 18.0.0 National Instruments Apr 03, 2018 User Documentation 1 About 3 2 Bugs / Feature Requests 5 2.1 Information to Include When Asking For Help.............................

More information

sainsmart Documentation

sainsmart Documentation sainsmart Documentation Release 0.3.1 Victor Yap Jun 21, 2017 Contents 1 sainsmart 3 1.1 Install................................................... 3 1.2 Usage...................................................

More information

ATMS ACTION TRACKING MANAGEMENT SYSTEM. Quick Start Guide. The ATMS dev team

ATMS ACTION TRACKING MANAGEMENT SYSTEM. Quick Start Guide. The ATMS dev team ATMS ACTION TRACKING MANAGEMENT SYSTEM Quick Start Guide The ATMS dev team Contents What is ATMS?... 2 How does ATMS work?... 2 I get it, now where can I find more info?... 2 What s next?... 2 Welcome

More information

Django-CSP Documentation

Django-CSP Documentation Django-CSP Documentation Release 3.0 James Socol, Mozilla September 06, 2016 Contents 1 Installing django-csp 3 2 Configuring django-csp 5 2.1 Policy Settings..............................................

More information

django-auditlog Documentation

django-auditlog Documentation django-auditlog Documentation Release 0.4.3 Jan-Jelle Kester Jul 05, 2017 Contents 1 Contents 3 1.1 Installation................................................ 3 1.2 Usage...................................................

More information

xmljson Documentation

xmljson Documentation xmljson Documentation Release 0.1.9 S Anand Aug 01, 2017 Contents 1 About 3 2 Convert data to XML 5 3 Convert XML to data 7 4 Conventions 9 5 Options 11 6 Installation 13 7 Roadmap 15 8 More information

More information

Sequences and iteration in Python

Sequences and iteration in Python GC3: Grid Computing Competence Center Sequences and iteration in Python GC3: Grid Computing Competence Center, University of Zurich Sep. 11 12, 2013 Sequences Python provides a few built-in sequence classes:

More information

pydrill Documentation

pydrill Documentation pydrill Documentation Release 0.3.4 Wojciech Nowak Apr 24, 2018 Contents 1 pydrill 3 1.1 Features.................................................. 3 1.2 Installation................................................

More information

CS Lecture 19: Loop invariants

CS Lecture 19: Loop invariants CS 1110 Lecture 19: Loop invariants Announcements Prelim 2 conflicts Today (April 2) is two weeks before the prelim, and the deadline for submitting prelim conflicts. Instructor travel This week and the

More information

How to Make a Book Interior File

How to Make a Book Interior File How to Make a Book Interior File These instructions are for paperbacks or ebooks that are supposed to be a duplicate of paperback copies. (Note: This is not for getting a document ready for Kindle or for

More information

Dragon Mapper Documentation

Dragon Mapper Documentation Dragon Mapper Documentation Release 0.2.6 Thomas Roten March 21, 2017 Contents 1 Support 3 2 Documentation Contents 5 2.1 Dragon Mapper.............................................. 5 2.2 Installation................................................

More information

kvkit Documentation Release 0.1 Shuhao Wu

kvkit Documentation Release 0.1 Shuhao Wu kvkit Documentation Release 0.1 Shuhao Wu April 18, 2014 Contents 1 Introduction to KVKit 3 1.1 Simple Tutorial.............................................. 3 1.2 Indexes..................................................

More information

SIMPLE PROGRAMMING. The 10 Minute Guide to Bitwise Operators

SIMPLE PROGRAMMING. The 10 Minute Guide to Bitwise Operators Simple Programming SIMPLE PROGRAMMING The 10 Minute Guide to Bitwise Operators (Cause you've got 10 minutes until your interview starts and you know you should probably know this, right?) Twitter: Web:

More information

What s new in SketchUp Pro?

What s new in SketchUp Pro? What s new in SketchUp Pro? SketchUp Pro (Desktop) Making Information Modeling Useful Ultimately, we think BIM is about using information in your model to make better buildings. Our focus is to help users

More information

Scope of this lecture. Repetition For loops While loops

Scope of this lecture. Repetition For loops While loops REPETITION CITS1001 2 Scope of this lecture Repetition For loops While loops Repetition Computers are good at repetition We have already seen the for each loop The for loop is a more general loop form

More information

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming Intro to Programming Unit 7 Intro to Programming 1 What is Programming? 1. Programming Languages 2. Markup vs. Programming 1. Introduction 2. Print Statement 3. Strings 4. Types and Values 5. Math Externals

More information

Paul's Online Math Notes Calculus III (Notes) / Applications of Partial Derivatives / Lagrange Multipliers Problems][Assignment Problems]

Paul's Online Math Notes Calculus III (Notes) / Applications of Partial Derivatives / Lagrange Multipliers Problems][Assignment Problems] 1 of 9 25/04/2016 13:15 Paul's Online Math Notes Calculus III (Notes) / Applications of Partial Derivatives / Lagrange Multipliers Problems][Assignment Problems] [Notes] [Practice Calculus III - Notes

More information

Python Type Checking Guide Documentation

Python Type Checking Guide Documentation Python Type Checking Guide Documentation Release 1.0 Chad Dombrova Mar 03, 2017 Contents 1 Background 3 1.1 Why Should I Care?........................................... 3 1.2 Enter PEP 484..............................................

More information

Python AutoTask Web Services Documentation

Python AutoTask Web Services Documentation Python AutoTask Web Services Documentation Release 0.5.1 Matt Parr May 15, 2018 Contents 1 Python AutoTask Web Services 3 1.1 Features.................................................. 3 1.2 Credits..................................................

More information

Simple Binary Search Tree Documentation

Simple Binary Search Tree Documentation Simple Binary Search Tree Documentation Release 0.4.1 Adrian Cruz October 23, 2014 Contents 1 Simple Binary Search Tree 3 1.1 Features.................................................. 3 2 Installation

More information

Word: Print Address Labels Using Mail Merge

Word: Print Address Labels Using Mail Merge Word: Print Address Labels Using Mail Merge No Typing! The Quick and Easy Way to Print Sheets of Address Labels Here at PC Knowledge for Seniors we re often asked how to print sticky address labels in

More information

Intro to Github. Jessica Young

Intro to Github. Jessica Young Intro to Github Jessica Young jyoung22@nd.edu GitHub Basics 1. Installing GitHub and Git 2. Connecting Git and GitHub 3. Why use Git? Installing GitHub If you haven t already, create an account on GitHub

More information

TPS Documentation. Release Thomas Roten

TPS Documentation. Release Thomas Roten TPS Documentation Release 0.1.0 Thomas Roten Sep 27, 2017 Contents 1 TPS: TargetProcess in Python! 3 2 Installation 5 3 Contributing 7 3.1 Types of Contributions..........................................

More information

Liquibase Version Control For Your Schema. Nathan Voxland April 3,

Liquibase Version Control For Your Schema. Nathan Voxland April 3, Liquibase Version Control For Your Schema Nathan Voxland April 3, 2014 nathan@liquibase.org @nvoxland Agenda 2 Why Liquibase Standard Usage Tips and Tricks Q&A Why Liquibase? 3 You would never develop

More information

Roman Numeral Converter Documentation

Roman Numeral Converter Documentation Roman Numeral Converter Documentation Release 0.1.0 Adrian Cruz October 07, 2014 Contents 1 Roman Numeral Converter 3 1.1 Features.................................................. 3 2 Installation 5

More information

Slicing. Open pizza_slicer.py

Slicing. Open pizza_slicer.py Slicing and Tuples Slicing Open pizza_slicer.py Indexing a string is a great way of getting to a single value in a string However, what if you want to use a section of a string Like the middle name of

More information

Control Structures 1 / 17

Control Structures 1 / 17 Control Structures 1 / 17 Structured Programming Any algorithm can be expressed by: Sequence - one statement after another Selection - conditional execution (not conditional jumping) Repetition - loops

More information

Flow Control: Branches and loops

Flow Control: Branches and loops Flow Control: Branches and loops In this context flow control refers to controlling the flow of the execution of your program that is, which instructions will get carried out and in what order. In the

More information

Assignment 1c: Compiler organization and backend programming

Assignment 1c: Compiler organization and backend programming Assignment 1c: Compiler organization and backend programming Roel Jordans 2016 Organization Welcome to the third and final part of assignment 1. This time we will try to further improve the code generation

More information

nacelle Documentation

nacelle Documentation nacelle Documentation Release 0.4.1 Patrick Carey August 16, 2014 Contents 1 Standing on the shoulders of giants 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2

More information

ArcGIS Server: publishing geospatial data to the web using the EEA infrastructure

ArcGIS Server: publishing geospatial data to the web using the EEA infrastructure ArcGIS Server: publishing geospatial data to the web using the EEA infrastructure *IMPORTANT: Map Services should be published using the EEA Map Services Tick Sheet for guidance. Contact Sebastien Petit

More information

CS Introduction to Computational and Data Science. Instructor: Renzhi Cao Computer Science Department Pacific Lutheran University Spring 2017

CS Introduction to Computational and Data Science. Instructor: Renzhi Cao Computer Science Department Pacific Lutheran University Spring 2017 CS 133 - Introduction to Computational and Data Science Instructor: Renzhi Cao Computer Science Department Pacific Lutheran University Spring 2017 Introduction to Python II In the previous class, you have

More information

Intermediate/Advanced Python. Michael Weinstein (Day 1)

Intermediate/Advanced Python. Michael Weinstein (Day 1) Intermediate/Advanced Python Michael Weinstein (Day 1) Who am I? Most of my experience is on the molecular and animal modeling side I also design computer programs for analyzing biological data, particularly

More information

pylatexenc Documentation

pylatexenc Documentation pylatexenc Documentation Release 1.2 Philippe Faist Apr 28, 2017 Contents: 1 Simple Parser for LaTeX Code 3 1.1 The main LatexWalker class....................................... 3 1.2 Exception Classes............................................

More information

Azure SDK for Python Documentation

Azure SDK for Python Documentation Azure SDK for Python Documentation Release 0.37.0 Microsoft Oct 05, 2017 Contents 1 Installation: 1 2 Documentation: 3 3 Features: 5 4 System Requirements: 7 5 Need Help?: 9 6 Contributing: 11 6.1 Contribute

More information

Python simple arp table reader Documentation

Python simple arp table reader Documentation Python simple arp table reader Documentation Release 0.0.1 David Francos Nov 17, 2017 Contents 1 Python simple arp table reader 3 1.1 Features.................................................. 3 1.2 Usage...................................................

More information

git-flow Documentation

git-flow Documentation git-flow Documentation Release 1.0 Johan Cwiklinski Jul 14, 2017 Contents 1 Presentation 3 1.1 Conventions............................................... 4 1.2 Pre-requisites...............................................

More information

Change Log. L-Py. July 24th 2009: version (rev 6689): Introduce Lsystem::Debugger. Introduce first ui of a Lsystem Debugger.

Change Log. L-Py. July 24th 2009: version (rev 6689): Introduce Lsystem::Debugger. Introduce first ui of a Lsystem Debugger. L-Py Change Log July 24th 2009: version 1.4.0 (rev 6689): Introduce Lsystem::Debugger Introduce first ui of a Lsystem Debugger. fix bug with animation when resuming (avoid reloading text) July 17th 2009:

More information

Python StatsD Documentation

Python StatsD Documentation Python StatsD Documentation Release 3.2.2 James Socol Dec 15, 2017 Contents 1 Installing 3 2 Contents 5 2.1 Configuring Statsd............................................ 5 2.2 Data Types................................................

More information

ipuz Documentation Release 0.1 Simeon Visser

ipuz Documentation Release 0.1 Simeon Visser ipuz Documentation Release 0.1 Simeon Visser December 29, 2015 Contents 1 Contents 3 1.1 Reading ipuz puzzles........................................... 3 1.2 Writing ipuz puzzles...........................................

More information

chatterbot-weather Documentation

chatterbot-weather Documentation chatterbot-weather Documentation Release 0.1.1 Gunther Cox Nov 23, 2018 Contents 1 chatterbot-weather 3 1.1 Installation................................................ 3 1.2 Example.................................................

More information

Word Tips (using Word but these work with Excel, PowerPoint, etc) Paul Davis Crosslake Communications

Word Tips (using Word but these work with Excel, PowerPoint, etc) Paul Davis Crosslake Communications Word Tips (using Word but these work with Excel, PowerPoint, etc) Paul Davis Crosslake Communications What tips are we going to discuss? First of all, HELP Fonts Tables Columns Pasting Images Mail Merge

More information

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines. Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of

More information

Announcements. Lecture Agenda. Class Exercise. Hashable. Mutability. COMP10001 Foundations of Computing Iteration

Announcements. Lecture Agenda. Class Exercise. Hashable. Mutability. COMP10001 Foundations of Computing Iteration COMP10001 Foundations of Computing Iteration Announcements Semester 1, 2017 Tim Baldwin & Egemen Tanin First Guest Lecture on Friday (examinable) Grok Worksheets 5 7 due at the end of this week version:

More information

FOMOD Designer Documentation

FOMOD Designer Documentation FOMOD Designer Documentation Release 0.8.1.0 Daniel Nunes Mar 06, 2017 Contents: 1 Main Features 3 i ii A visual editor to quickly create FOMOD installers for Nexus based mods. If you re new around here,

More information

redis-lua Documentation

redis-lua Documentation redis-lua Documentation Release 2.0.8 Julien Kauffmann October 12, 2016 Contents 1 Quick start 3 1.1 Step-by-step analysis........................................... 3 2 What s the magic at play here?

More information

Sucuri Webinar Q&A HOW TO IDENTIFY AND FIX A HACKED WORDPRESS WEBSITE. Ben Martin - Remediation Team Lead

Sucuri Webinar Q&A HOW TO IDENTIFY AND FIX A HACKED WORDPRESS WEBSITE. Ben Martin - Remediation Team Lead Sucuri Webinar Q&A HOW TO IDENTIFY AND FIX A HACKED WORDPRESS WEBSITE. Ben Martin - Remediation Team Lead 1 Question #1: What is the benefit to spammers for using someone elses UA code and is there a way

More information

django-embed-video Documentation

django-embed-video Documentation django-embed-video Documentation Release 0.7.stable Juda Kaleta December 21, 2013 Contents i ii Django app for easy embeding YouTube and Vimeo videos and music from SoundCloud. Repository is located on

More information

cwmon-mysql Release 0.5.0

cwmon-mysql Release 0.5.0 cwmon-mysql Release 0.5.0 October 18, 2016 Contents 1 Overview 1 1.1 Installation................................................ 1 1.2 Documentation.............................................. 1 1.3

More information

15-780: Problem Set #3

15-780: Problem Set #3 15-780: Problem Set #3 March 31, 2014 1. Partial-Order Planning [15 pts] Consider a version of the milk//banana//drill shopping problem used in the second planning lecture (slides 17 26). (a) Modify the

More information

XDI Link Contract Deep Dive

XDI Link Contract Deep Dive XDI Link Contract Deep Dive August 25-27, 2014 (Document by Dan Blum, slightly edited for Aug 29 XDI TC call by Markus) Introduction I learned that this is the second- or third XDI retreat, and for some

More information

dicompyler-core Documentation

dicompyler-core Documentation dicompyler-core Documentation Release 0.5.3 Aditya Panchal Nov 08, 2017 Contents 1 dicompyler-core 3 1.1 Other information............................................ 3 1.2 Dependencies...............................................

More information

spacetrack Documentation

spacetrack Documentation spacetrack Documentation Release 0.13.1 Frazer McLean Feb 03, 2018 Contents 1 Installation 3 1.1 pip.................................................. 3 1.2 Git..................................................

More information

Repetition, Looping. While Loop

Repetition, Looping. While Loop Repetition, Looping Last time we looked at how to use if-then statements to control the flow of a program. In this section we will look at different ways to repeat blocks of statements. Such repetitions

More information

Writing a connector to Property Unification How-to guide

Writing a connector to Property Unification How-to guide SAP Writing a connector to Property Unification How-to guide Contents Introduction... 1 Attribute value and description objects... 3 PU context object... 4 Implementing PU classrole IS_SP_PROP_REPOSITORY...

More information

Python wrapper for Viscosity.app Documentation

Python wrapper for Viscosity.app Documentation Python wrapper for Viscosity.app Documentation Release Paul Kremer March 08, 2014 Contents 1 Python wrapper for Viscosity.app 3 1.1 Features.................................................. 3 2 Installation

More information

solrq Documentation Release Michał Jaworski

solrq Documentation Release Michał Jaworski solrq Documentation Release 1.1.1 Michał Jaworski Mar 27, 2017 Contents 1 solrq 1 2 usage 3 2.1 quick reference.............................................. 4 3 contributing 7 4 testing 9 5 Detailed

More information

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Table of Contents Introduction!... 1 Part 1: Entering Data!... 2 1.a: Typing!... 2 1.b: Editing

More information

Signals Documentation

Signals Documentation Signals Documentation Release 0.1 Yeti November 22, 2015 Contents 1 Quickstart 1 2 What is Signals? 3 3 Contents 5 3.1 Get Started................................................ 5 3.2 Try the Demo Server...........................................

More information

dublincore Documentation

dublincore Documentation dublincore Documentation Release 0.1.1 CERN Mar 25, 2018 Contents 1 User s Guide 3 1.1 Installation................................................ 3 1.2 Usage...................................................

More information

Creating Breakout - Part 2

Creating Breakout - Part 2 Creating Breakout - Part 2 Adapted from Basic Projects: Game Maker by David Waller So the game works, it is a functioning game. It s not very challenging though, and it could use some more work to make

More information

Background. $VENDOR wasn t sure either, but they were pretty sure it wasn t their code.

Background. $VENDOR wasn t sure either, but they were pretty sure it wasn t their code. Background Patient A got in touch because they were having performance pain with $VENDOR s applications. Patient A wasn t sure if the problem was hardware, their configuration, or something in $VENDOR

More information

RELATIONAL ALGEBRA II. CS121: Relational Databases Fall 2017 Lecture 3

RELATIONAL ALGEBRA II. CS121: Relational Databases Fall 2017 Lecture 3 RELATIONAL ALGEBRA II CS121: Relational Databases Fall 2017 Lecture 3 Last Lecture 2 Query languages provide support for retrieving information from a database Introduced the relational algebra A procedural

More information

django-contact-form Documentation

django-contact-form Documentation django-contact-form Documentation Release 1.4.2 James Bennett Aug 01, 2017 Installation and configuration 1 Installation guide 3 2 Quick start guide 5 3 Contact form classes 9 4 Built-in views 13 5 Frequently

More information

Kaiso Documentation. Release 0.1-dev. onefinestay

Kaiso Documentation. Release 0.1-dev. onefinestay Kaiso Documentation Release 0.1-dev onefinestay Sep 27, 2017 Contents 1 Neo4j visualization style 3 2 Contents 5 2.1 API Reference.............................................. 5 3 Indices and tables

More information

Semester 2, 2018: Lab 1

Semester 2, 2018: Lab 1 Semester 2, 2018: Lab 1 S2 2018 Lab 1 This lab has two parts. Part A is intended to help you familiarise yourself with the computing environment found on the CSIT lab computers which you will be using

More information

Dictionaries. Looking up English words in the dictionary. Python sequences and collections. Properties of sequences and collections

Dictionaries. Looking up English words in the dictionary. Python sequences and collections. Properties of sequences and collections Looking up English words in the dictionary Comparing sequences to collections. Sequence : a group of things that come one after the other Collection : a group of (interesting) things brought together for

More information

Taskbar: Working with Several Windows at Once

Taskbar: Working with Several Windows at Once Taskbar: Working with Several Windows at Once Your Best Friend at the Bottom of the Screen How to Make the Most of Your Taskbar The taskbar is the wide bar that stretches across the bottom of your screen,

More information

django-embed-video Documentation

django-embed-video Documentation django-embed-video Documentation Release 0.6.stable Juda Kaleta October 04, 2013 CONTENTS i ii Django app for easy embeding YouTube and Vimeo videos and music from SoundCloud. Repository is located on

More information

pysharedutils Documentation

pysharedutils Documentation pysharedutils Documentation Release 0.5.0 Joel James August 07, 2017 Contents 1 pysharedutils 1 2 Indices and tables 13 i ii CHAPTER 1 pysharedutils pysharedutils is a convenient utility module which

More information