predictive-punter / racing_data Goto Github PK
View Code? Open in Web Editor NEWPython horse racing class library
License: MIT License
Python horse racing class library
License: MIT License
Find or scrape a list of runners competing in a given race.
Add the following calculated properties to the Performance class:
Accessing the Runner.up property when Runner.spell is None (that is, it is the horse's first run) results in a TypeError (unorderable types: NoneType() >= int())
Subsequent calls to the Race.runners property from different Race objects seems to repeatedly return the list of runners for the first Race object from which it was accessed.
Create database indexes supporting all queries executed by the Provider, during Provider initialisation.
Re-enable flake8 checks and ensure integration with Travis CI continues to work.
A TypeError (unsupported operand type(s) for ** or pow(): 'NoneType' and 'int') occurs on line 21 of runner.py when attempting to access the Runner.actual_distance property.
Find or scrape the trainer associated with a given runner.
Currently, accessing provider methods that make use of the find_or_create and find_or_create_one methods in a multithreading environment can result in duplicated data making its way into the database.
To prevent this, a query locking mechanism needs to be implemented, wrapping the find_or_create and find_or_create_one methods in a contextual lock that prevents one thread from searching for a given entity and failing to find it while another thread is in the process of creating it, but in such a way that the lock doesn't prevent unaffected queries from running in parallel.
Implement the optional ability to specify an 'entity time to live' that will override entity expiration if the entity has already been updated within a specified time period. This should avoid unnecessary rescraping of entities within a given session when working with future data.
The default should be NO entity time to live so that existing update tests continue to pass.
Find or scrape the horse associated with a given runner.
A TypeError (unsupported operand type(s) for -: 'NoneType' and 'int') occurs on line 66 of runner.py when attempting to generate the Runner.at_distance performance list property.
Implement human readable string representations for the various entity types.
Find or scrape a list of meets occurring on a specified date.
Update README.rst to include a brief overview of performance lists and the calculated properties added to runners and performances.
Find or scrape the jockey associated with a given runner.
Update the versioning system and implement automated manifest checking as per punters-client-1.0.0a2
When attempting to access the actual_distance property for a runner in a race that has no track_circ and/or track_straight value, a TypeError (unorderable types: int() < NoneType()) occurs on line 22 of runner.py.
When attempting to access the Performance.actual_weight property for a performance without a 'carried' value, a TypeError (unsupported operand type(s) for +: 'NoneType' and 'float') occurs on line 25 of performance.py.
Add the following calculated properties to the Runner class:
Also add the following performance list properties to the Runner class:
Update the 'Basic Usage' section of the README.rst file with brief instructions about using the provider and the various entity types.
A TypeError (unsupported operand type(s) for *: 'NoneType' and 'float') still occurs in the Performance.actual_distance property.
The NoneType could be representing either 'barrier' or 'lengths' attributes.
Find or scrape a list of performances associated with a given horse.
When attempting to access the Performance.speed property for a performance with a winning time of 0.0, a ZeroDivisionError (float division by zero) occurs on line 87 of performance.py.
Implement a PerformanceList class that extends the built-in list type and provides the following calculated properties based on the performances in the list:
Analysis of scraped data has revealed that the same track can be identified by different names over time. This causes an issue with the Runner.on_track and Runner.at_distance_on_track performance list properties, as they filter past performances for those that have an identical track as the current meet.
Need to come up with some way to relate alternative track names so relevant performances can still be found in these instances...
For some reason, py.test is not collecting any coverage information on Travis CI (despite the fact it works fine locally!) as of this morning, and thus Coveralls is reporting code coverage of 0%
Find or scrape a list of races occurring at a given meet.
Create a Python package and set up DevOps support as per:
Add (cached) properties to the various entities that permit easier access to associated entities, such as:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.