Giter VIP home page Giter VIP logo

pype's Introduction

Simplicity

KISS

davidfrigola.github.io

pype's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

pype's Issues

RedisProcessor

Same philosophy of FileProcessor: hability to store/retrieve elements to/from redirs.
Will base on a RedisDatasource implementation
If possible should store the whole object serialized, if it's too much tricky, just store the value.
Metadata is a MUST?

StatsDSenderProcessor

Create a sender processor to send any item to a statsd running server

  • Some metadata about the process itself

Log processor

Processor for log item values
Two output modes available for fist implementation: logger and stdout

AddItem Processor

Processor to add items to the stream.
Add items before / after / both the items list (or a single item)

Code coverage to 75%

Increase code coverage
Use best practices instead of current approach from M-0.2
Change travis-ci yaml file for CI check of this new code coverage

Egg generation

Generate egg file
Create setup.py to generate egg file
When stable, configure it to publish to CheeseShop just for fun?

Condition filter already processed item

Create a condition, based on data-storage (mongodb?) to decide if an item has been processed.

Options:

  • Store hash instead of value : provides a better search performance if the value is a big string
  • Use mongodb ? mysql? Mongo looks a good idea

Using condition, create a processor (DRYProcessor?) so pype has this feature out-of-the-box

Samples

Code samples and usage.
Wiki page for samples

Documentation

Complete wiki documentation

  • Processors
  • Samples
  • Tests

Update samples readme

Update samples readme.
Add description/feature demostration for each sample file
Possibly rename to README.md?

Torrent processor implementation

Define Torrent processor py file with Transmission Add processor
The Transmission Add Processor must be able to add magnet links to a configured running transmission-daemon service.

Configuration needed:

  • Service IP:Port
  • User/password

Refactor #1

Move in Processors from process and processList to a unique process method with a "stream" object
Initially this stream object can be just an array of BaseItem
Stream object can be more convenient in order to add complementary data as Context or StreamData

CI using travis-ci.org

Investigate how to configure travis ci for python project.
Probably a fixed structure is needed (maven like?) or a detailed configuration file.
Can't go further without this working

ScriptProcessor

Implement a processor that runs a script (linux)

  • The script to run must be configured
  • Script run per item, with item value as parameter
  • OR just once, with parameter based on
    ** List of values
    ** Number of items? i.e. processList([])

HeadersProvider for HtmlProcessor

HeadersProvider injected in config at processor startup.
This is related with #20
If none provided, add a default one
If provided, use it
Some util providers:

  • DefaultAgentHeaderProvider
  • RandomAgentHeaderProvider - With a list of headers
  • FixedHeaderProvider - A fixed header (configured in the provider config)
  • MultipleHeaderProvider that gets a list of headerproviders and joins all the results from each provider into a headers list for the request

Conditions on non-str values does not work

RegexCondition and ContainsTextCondition should only work on str item values.

See extra_conditions.py lines L28-29

AND - : the L28 log output SHOULD NOT evaluate twice the regex, so the result must be stored in temp var and then used for logging purposes

debug

Add debug to all processors

TransmissionChangeStatusProcessor

A processor that:

  • Gets all torrents in a transmission server
  • Filters per status / name regex?(config)
  • Changes to status (config)

Intended to:

  • Stop / Start torrents depending on name or current status

External Data Source processor

Processor to start/add items within the pype
Will use external datasource (we have mongo ds implemented atm) to obtain items and add them to the pype

Processor configuration validation

Create a Validator abstract class and implementations for each processor.
Default validator should be used when none provided ( defaul parameter value in constructor init(self,config, validator=ProcessorDefaultValidatorImplementation??) if such a thing exist, or something programatically driven

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.