Search Results

Search found 13956 results on 559 pages for 'python memcached'.

Page 106/559 | < Previous Page | 102 103 104 105 106 107 108 109 110 111 112 113  | Next Page >

  • Looking for a specific python gui module to perform the following task

    - by Sadaf Amouz
    I am looking for a GUI python module that is best suited for the following job: I am trying to plot a graph with many columns (perhaps hundreds), each column representing an individual. The user should be able to drag the columns around and drop them onto different columns to switch the two. Also, there are going to be additional dots drawn on the columns and by hovering over those dots, the user should see the values corresponding to those dots. What is the best way to approach this?

    Read the article

  • best way to implement a deck for a card game in python

    - by matt1024
    What is the best way to store the cards and suits in python so that I can hold a reference to these values in another variable? For example, if I have a list called hand (cards in players hand), how could I hold values that could refer to the names of suits and values of specific cards, and how would these names and values of suits and cards be stored?

    Read the article

  • Play a Sound with Python

    - by Claudiu
    What's the easiest way to play a sound file (.wav) in Python? By easiest I mean both most platform independent and requiring the least dependencies. pygame is certainly an option, but it seems overkill for just sound.

    Read the article

  • Python file - Want to change it to a function or a class

    - by curious2know
    Hello, I have a python program/file that I want to run repeatedly and calculate the averages of some variables over these runs. To do so, I thought it might be convenient to convert this program into a function or a class. One way I can think of is to add a def Main(): line at the top and indent every line manually within it. Is there an easier way? I am using pydev on eclipse. Thanks.

    Read the article

  • Equivalent of alarm(3600) in Python

    - by knorv
    Starting a Perl script with alarm(3600) will make the script abort if it is still running after one hour (3600 seconds). Assume I want to set an upper bound on the running time of a Python script, what is the easiest way to achieve that?

    Read the article

  • Python development with Emacs?

    - by ipeev
    Anybody knows some actual documentation written? I can't find anything good for any of the 2 competing mods. Looks like Emacs is pretty much abandon when it comes to Python and it is a shame as there is no other programmable programming editor that comes close to Emacs.

    Read the article

  • Get current URL in Python

    - by Alex
    How would i get the current URL with Python, I need to grab the current URL so i can check it for query strings e.g requested_url = "URL_HERE" url = urlparse(requested_url) if url[4]: params = dict([part.split('=') for part in url[4].split('&')]) also this is running in Google App Engine

    Read the article

  • Perl like regex in Python

    - by anansi
    In Perl I would do something like this for taking different fields in a regexp, separating different fields by () and getting them using $ foreach $line (@lines) { $line =~ m/(.*?):([^-]*)-(.*)/; $field_1 = $1 $field_2 = $2 $field_3 = $3 } How could I do something like this in Python?

    Read the article

  • Python 3.2: How to pass a dictionary into str.format()

    - by Robert Dailey
    I've been reading the Python 3.2 docs about string formatting but it hasn't really helped me with this particular problem. Here is what I'm trying to do: stats = { 'copied': 5, 'skipped': 14 } print( 'Copied: {copied}, Skipped: {skipped}'.format( stats ) ) The above code will not work because the format() call is not reading the dictionary values and using those in place of my format placeholders. How can I modify my code to work with my dictionary?

    Read the article

  • Python: Open() using a variable

    - by nuustik
    Good day, I've ran into a problem with opening a file with randomly generated name in Python 2.6. import random random = random.randint(1,10) localfile = file("%s","wb") % random Then I get an error message about the last line TypeError: unsupported operand type(s) for %: 'file' and 'int' I just couldn't figure this out by myself nor with Google, but there has to be a cure for this, I believe. Thanks.

    Read the article

  • windows stdbool.h for python module

    - by swasheck
    I found this http://stackoverflow.com/questions/25461/stdbool-h-c as an answer to "where is stdbool.h on windows?" but now need to know what to do with it. I'm actually trying to install the lazyboy python extension on windows and this is the first error that I'm receiving. So, being completely unfamiliar with this, where do I put this header file so that it's seen?

    Read the article

  • python floating number

    - by zhack
    i am kind of confused why python add some additional decimal number in this case, please help to explain >>> mylist = ["list item 1", 2, 3.14] >>> print mylist ['list item 1', 2, 3.1400000000000001]

    Read the article

  • RuntimeError: maximum recursion depth exceeded while calling a Python object

    - by Bilal Basharat
    this error arises when i try to run the following test case which is written in models.py of my django app named 'administration' : from django.test import Client, TestCase from django.core import mail class ClientTest( TestCase ): fixtures = [ 'testdata.json' ] def test_get_register( self ): response = self.client.get( '/accounts/register/', {} ) self.assertEqual( response.status_code, 200 ) the error arises at this line specifically: response = self.client.get( '/accounts/register/', {} ) my django version is 1.2.1 and python 2.6 and satchmo version is 0.9.2-pre hg-unknown. I code in windows platform(xp sp2). The command to run test case is: python manage.py test administration the complete error log is as follow: site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 121, in by_host site = by_host(host=host[4:], id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 124, in by_host site = by_host(host = 'www.%s' % host, id_only=id_only) File "build\bdist.win32\egg\threaded_multihost\sites.py", line 101, in by_host site = Site.objects.get(domain=host) File "C:\django\django\db\models\manager.py", line 132, in get return self.get_query_set().get(*args, **kwargs) File "C:\django\django\db\models\query.py", line 336, in get num = len(clone) File "C:\django\django\db\models\query.py", line 81, in __len__ self._result_cache = list(self.iterator()) File "C:\django\django\db\models\query.py", line 269, in iterator for row in compiler.results_iter(): File "C:\django\django\db\models\sql\compiler.py", line 672, in results_iter for rows in self.execute_sql(MULTI): File "C:\django\django\db\models\sql\compiler.py", line 717, in execute_sql sql, params = self.as_sql() File "C:\django\django\db\models\sql\compiler.py", line 65, in as_sql where, w_params = self.query.where.as_sql(qn=qn, connection=self.connection) File "C:\django\django\db\models\sql\where.py", line 91, in as_sql sql, params = child.as_sql(qn=qn, connection=connection) File "C:\django\django\db\models\sql\where.py", line 94, in as_sql sql, params = self.make_atom(child, qn, connection) File "C:\django\django\db\models\sql\where.py", line 141, in make_atom lvalue, params = lvalue.process(lookup_type, params_or_value, connection) File "C:\django\django\db\models\sql\where.py", line 312, in process connection=connection, prepared=True) File "C:\django\django\db\models\fields\subclassing.py", line 53, in inner return func(*args, **kwargs) File "C:\django\django\db\models\fields\subclassing.py", line 53, in inner return func(*args, **kwargs) File "C:\django\django\db\models\fields\__init__.py", line 323, in get_db_prep _lookup return [self.get_db_prep_value(value, connection=connection, prepared=prepar ed)] File "C:\django\django\db\models\fields\subclassing.py", line 53, in inner return func(*args, **kwargs) File "C:\django\django\db\models\fields\subclassing.py", line 53, in inner return func(*args, **kwargs) RuntimeError: maximum recursion depth exceeded while calling a Python object ---------------------------------------------------------------------- Ran 7 tests in 48.453s FAILED (errors=1) Destroying test database 'default'...

    Read the article

  • Memcache textual protocol cheatsheet ?

    - by Maxim Veksler
    Memcached interface is implemented using a textual protocol. Sometimes it's very useful to be to fetch data stored on your remote server simply by invoking netcat with some shell kung fu, for example: To download the XML result of your nightly data crunching job you might run something like: echo "get 95ec6c7693ec53771c8a3fb1061562b8" | nc localhost 11211 > console_overview_06_04_2010.xml The interesting part here is get SOME_UNIQUE_KEY which is part of the memcached protocol. What other useful usages can you suggest in regard to the ability to interact with memcached using nothing more then command line tools? Thank you, Maxim.

    Read the article

  • wanting a good memory + disk caching solution

    - by brofield
    I'm currently storing generated HTML pages in a memcached in-memory cache. This works great, however I am wanting to increase the storage capacity of the cache beyond available memory. What I would really like is: memcached semantics (i.e. not reliable, just a cache) memcached api preferred (but not required) large in-memory first level cache (MRU) huge on-disk second level cache (main) evicted from on-disk cache at maximum storage using LRU or LFU proven implementation In searching for a solution I've found the following solutions but they all miss my marks in some way. Does anyone know of either: other options that I haven't considered a way to make memcachedb do evictions Already considered are: memcachedb best fit but doesn't do evictions: explicitly "not a cache" can't see any way to do evictions (either manual or automatic) tugela cache abandoned, no support don't want to recommend it to customers nmdb doesn't use memcache api new and unproven don't want to recommend it to customers

    Read the article

  • Nginx + WordPress + HHVM: Why isn't Batcache working? Would Varnish help even more?

    - by javipas
    I've heard great things about HHVM, so I've setup a copy of WordPress blog (on another domain) with Nginx (with the Pagespeed module) and HHVM. Right now the benefits are obvious: on the same config, load times are between two and three times faster. I'm trying to speed up things a little bit, and I've also installed Memcached and Batcache. I've installed the memcached package, copied object-cache.php (Pastebin) onto the root folder of the WordPress blog, and after that I've installed the Batcache plugin and copied the advanced-cache.php (Pastebin) file onto the wp-content folder. Also, I've included the line define('WP_CACHE', true); in the wp-config.php file. It seems it doesn't work, though. If I quickly reload the page several times Batcache should show the cached page, but it doesn't. It's easy to check that by reloading (Cmd+R on Chrome on OS X) the page several times and then viewing the page's code. Under the <head> section I should see some batcache stats, but they aren't there. I wonder if someone could give me some hint on this. On a side note, I don't know if I could add some other component in order to help the performance be even better. I'm thing about Varnish, but I'm not sure if it's just useless and it's just another way to the same I'm currently doing. Any other component there? (I'll test CDN for images, minifying js, etc and some other tricks as well, but I'm talking from the server perspective).

    Read the article

  • I have a very long and repetitive python path, where do I look to correct this?

    - by ninja123
    I know it is probably not necessary to paste the whole path, but just for the record I have done so below. Whenever I run a python command, it takes a long time to load this path I suppose. I have checked in .bash_profile and only have these two lines: export PATH=/Users/username/bin:/opt/local/Library/Frameworks/Python.framework/Versions/2.5/bin:/opt/local/bin:/opt/local/sbin:/opt/local/apache2/bin:$PATH export PYTHONPATH=/opt/local/lib/python2.5/site-packages/ And my python path as outputed by Django's debug is: Python path : ['/Users/username/Sites/videocluster/eggs/ipython-0.10-py2.5.egg', '/Users/username/Sites/videocluster/eggs/South-0.6.1-py2.5.egg', '/Users/username/Sites/videocluster/eggs/django_markitup-0.5.2-py2.5.egg', '/Users/username/Sites/videocluster/eggs/DateTime-2.12.0-py2.5.egg', '/Users/username/Sites/videocluster/eggs/Markdown-2.0.3-py2.5.egg', '/Users/username/Sites/videocluster/eggs/PIL-1.1.7-py2.5-macosx-10.5-i386.egg', '/Users/username/Sites/videocluster/eggs/djangorecipe-0.20-py2.5.egg', '/Users/username/Sites/videocluster/eggs/zc.recipe.egg-1.2.3b2-py2.5.egg', '/Users/username/Sites/videocluster/eggs/zc.buildout-1.5.0b2-py2.5.egg', '/Users/username/Sites/videocluster/eggs/pytz-2010h-py2.5.egg', '/Users/username/Sites/videocluster/eggs/zope.interface-3.6.1-py2.5-macosx-10.5-i386.egg', '/Users/username/Sites/videocluster/eggs/setuptools-0.6c11-py2.5.egg', '/Users/username/Sites/videocluster/parts/django', '/Users/username/Sites/videocluster', '/Users/username/Sites/videocluster/bin', '/opt/local/lib/python2.5/site-packages/setuptools_git-0.3.3-py2.5.egg', '/opt/local/lib/python2.5/site-packages/pysqlite-2.5.5-py2.5-macosx-10.5-i386.egg', '/opt/local/lib/python2.5/site-packages/CouchDB-0.5-py2.5.egg', '/opt/local/lib/python2.5/site-packages/httplib2-0.4.0-py2.5.egg', '/opt/local/lib/python2.5/site-packages/PyYAML-3.08-py2.5-macosx-10.5-i386.egg', '/opt/local/lib/python2.5/site-packages/simple_db_migrate-1.2.8-py2.5.egg', '/opt/local/lib/python2.5/site-packages/PyDispatcher-2.0.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/pyOpenSSL-0.9-py2.5-macosx-10.5-i386.egg', '/opt/local/lib/python2.5/site-packages/greenlet-0.2-py2.5-macosx-10.5-i386.egg', '/opt/local/lib/python2.5/site-packages/Supay-0.0.2-py2.5.egg', '/opt/local/lib/python2.5/site-packages/configobj-4.6.0-py2.5.egg', '/opt/local/lib/python2.5/site-packages/Fabric-0.9b1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/fudge-0.9.3-py2.5.egg', '/opt/local/lib/python2.5/site-packages/pydelicious-0.5.3-py2.5.egg', '/opt/local/lib/python2.5/site-packages/feedparser-4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/github_cli-0.2.5.2-py2.5.egg', '/opt/local/lib/python2.5/site-packages/simplejson-2.0.9-py2.5-macosx-10.5-i386.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', ......(repeating)....... '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/harobed.paster_template.advanced_package-0.2-py2.5.egg', '/opt/local/lib/python2.5/site-packages/squash-0.5.0dev-py2.5.egg', '/opt/local/lib/python2.5/site-packages/eventlet-0.8.13-py2.5.egg', '/opt/local/lib/python2.5/site-packages/FeinCMS-1.0.2-py2.5.egg', '/opt/local/lib/python2.5/site-packages/pyenchant-1.5.3-py2.5.egg', '/opt/local/lib/python2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.5-i386.egg', '/opt/local/lib/python2.5/site-packages/django_scraper-0.1dev-py2.5.egg', '/opt/local/lib/python2.5/site-packages/Pympler-0.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/fabric.contrib.packagemanager-0.1dev-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/selenium-1.0.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/Scrapy-0.9_dev-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', ......(repeating)....... '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/zc.buildout-1.4.1-py2.5.egg', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '/opt/local/lib/python2.5/site-packages', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-darwin', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac/lib-scriptpackages', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/Numeric', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PIL', '/opt/local/lib/python2.5/site-packages/PIL', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', ......(repeating)....... '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/lib/python2.5/site-packages/gtk-2.0', '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/gtk-2.0'] Someone, please tell me where I can go to correct this. Thanks

    Read the article

  • Python: Improving long cumulative sum

    - by Bo102010
    I have a program that operates on a large set of experimental data. The data is stored as a list of objects that are instances of a class with the following attributes: time_point - the time of the sample cluster - the name of the cluster of nodes from which the sample was taken code - the name of the node from which the sample was taken qty1 = the value of the sample for the first quantity qty2 = the value of the sample for the second quantity I need to derive some values from the data set, grouped in three ways - once for the sample as a whole, once for each cluster of nodes, and once for each node. The values I need to derive depend on the (time sorted) cumulative sums of qty1 and qty2: the maximum value of the element-wise sum of the cumulative sums of qty1 and qty2, the time point at which that maximum value occurred, and the values of qty1 and qty2 at that time point. I came up with the following solution: dataset.sort(key=operator.attrgetter('time_point')) # For the whole set sys_qty1 = 0 sys_qty2 = 0 sys_combo = 0 sys_max = 0 # For the cluster grouping cluster_qty1 = defaultdict(int) cluster_qty2 = defaultdict(int) cluster_combo = defaultdict(int) cluster_max = defaultdict(int) cluster_peak = defaultdict(int) # For the node grouping node_qty1 = defaultdict(int) node_qty2 = defaultdict(int) node_combo = defaultdict(int) node_max = defaultdict(int) node_peak = defaultdict(int) for t in dataset: # For the whole system ###################################################### sys_qty1 += t.qty1 sys_qty2 += t.qty2 sys_combo = sys_qty1 + sys_qty2 if sys_combo > sys_max: sys_max = sys_combo # The Peak class is to record the time point and the cumulative quantities system_peak = Peak(time_point=t.time_point, qty1=sys_qty1, qty2=sys_qty2) # For the cluster grouping ################################################## cluster_qty1[t.cluster] += t.qty1 cluster_qty2[t.cluster] += t.qty2 cluster_combo[t.cluster] = cluster_qty1[t.cluster] + cluster_qty2[t.cluster] if cluster_combo[t.cluster] > cluster_max[t.cluster]: cluster_max[t.cluster] = cluster_combo[t.cluster] cluster_peak[t.cluster] = Peak(time_point=t.time_point, qty1=cluster_qty1[t.cluster], qty2=cluster_qty2[t.cluster]) # For the node grouping ##################################################### node_qty1[t.node] += t.qty1 node_qty2[t.node] += t.qty2 node_combo[t.node] = node_qty1[t.node] + node_qty2[t.node] if node_combo[t.node] > node_max[t.node]: node_max[t.node] = node_combo[t.node] node_peak[t.node] = Peak(time_point=t.time_point, qty1=node_qty1[t.node], qty2=node_qty2[t.node]) This produces the correct output, but I'm wondering if it can be made more readable/Pythonic, and/or faster/more scalable. The above is attractive in that it only loops through the (large) dataset once, but unattractive in that I've essentially copied/pasted three copies of the same algorithm. To avoid the copy/paste issues of the above, I tried this also: def find_peaks(level, dataset): def grouping(object, attr_name): if attr_name == 'system': return attr_name else: return object.__dict__[attrname] cuml_qty1 = defaultdict(int) cuml_qty2 = defaultdict(int) cuml_combo = defaultdict(int) level_max = defaultdict(int) level_peak = defaultdict(int) for t in dataset: cuml_qty1[grouping(t, level)] += t.qty1 cuml_qty2[grouping(t, level)] += t.qty2 cuml_combo[grouping(t, level)] = (cuml_qty1[grouping(t, level)] + cuml_qty2[grouping(t, level)]) if cuml_combo[grouping(t, level)] > level_max[grouping(t, level)]: level_max[grouping(t, level)] = cuml_combo[grouping(t, level)] level_peak[grouping(t, level)] = Peak(time_point=t.time_point, qty1=node_qty1[grouping(t, level)], qty2=node_qty2[grouping(t, level)]) return level_peak system_peak = find_peaks('system', dataset) cluster_peak = find_peaks('cluster', dataset) node_peak = find_peaks('node', dataset) For the (non-grouped) system-level calculations, I also came up with this, which is pretty: dataset.sort(key=operator.attrgetter('time_point')) def cuml_sum(seq): rseq = [] t = 0 for i in seq: t += i rseq.append(t) return rseq time_get = operator.attrgetter('time_point') q1_get = operator.attrgetter('qty1') q2_get = operator.attrgetter('qty2') timeline = [time_get(t) for t in dataset] cuml_qty1 = cuml_sum([q1_get(t) for t in dataset]) cuml_qty2 = cuml_sum([q2_get(t) for t in dataset]) cuml_combo = [q1 + q2 for q1, q2 in zip(cuml_qty1, cuml_qty2)] combo_max = max(cuml_combo) time_max = timeline.index(combo_max) q1_at_max = cuml_qty1.index(time_max) q2_at_max = cuml_qty2.index(time_max) However, despite this version's cool use of list comprehensions and zip(), it loops through the dataset three times just for the system-level calculations, and I can't think of a good way to do the cluster-level and node-level calaculations without doing something slow like: timeline = defaultdict(int) cuml_qty1 = defaultdict(int) #...etc. for c in cluster_list: timeline[c] = [time_get(t) for t in dataset if t.cluster == c] cuml_qty1[c] = [q1_get(t) for t in dataset if t.cluster == c] #...etc. Does anyone here at Stack Overflow have suggestions for improvements? The first snippet above runs well for my initial dataset (on the order of a million records), but later datasets will have more records and clusters/nodes, so scalability is a concern. This is my first non-trivial use of Python, and I want to make sure I'm taking proper advantage of the language (this is replacing a very convoluted set of SQL queries, and earlier versions of the Python version were essentially very ineffecient straight transalations of what that did). I don't normally do much programming, so I may be missing something elementary. Many thanks!

    Read the article

  • Python dictionary key missing

    - by Greg K
    I thought I'd put together a quick script to consolidate the CSS rules I have distributed across multiple CSS files, then I can minify it. I'm new to Python but figured this would be a good exercise to try a new language. My main loop isn't parsing the CSS as I thought it would. I populate a list with selectors parsed from the CSS files to return the CSS rules in order. Later in the script, the list contains an element that is not found in the dictionary. for line in self.file.readlines(): if self.hasSelector(line): selector = self.getSelector(line) if selector not in self.order: self.order.append(selector) elif selector and self.hasProperty(line): # rules.setdefault(selector,[]).append(self.getProperty(line)) property = self.getProperty(line) properties = [] if selector not in rules else rules[selector] if property not in properties: properties.append(property) rules[selector] = properties # print "%s :: %s" % (selector, "".join(rules[selector])) return rules Error encountered: $ css-combine combined.css test1.css test2.css Traceback (most recent call last): File "css-combine", line 108, in <module> c.run(outfile, stylesheets) File "css-combine", line 64, in run [(selector, rules[selector]) for selector in parser.order], KeyError: 'p' Swap the inputs: $ css-combine combined.css test2.css test1.css Traceback (most recent call last): File "css-combine", line 108, in <module> c.run(outfile, stylesheets) File "css-combine", line 64, in run [(selector, rules[selector]) for selector in parser.order], KeyError: '#header_.title' I've done some quirky things in the code like sub spaces for underscores in dictionary key names in case it was an issue - maybe this is a benign precaution? Depending on the order of the inputs, a different key cannot be found in the dictionary. The script: #!/usr/bin/env python import optparse import re class CssParser: def __init__(self): self.file = False self.order = [] # store rules assignment order def parse(self, rules = {}): if self.file == False: raise IOError("No file to parse") selector = False for line in self.file.readlines(): if self.hasSelector(line): selector = self.getSelector(line) if selector not in self.order: self.order.append(selector) elif selector and self.hasProperty(line): # rules.setdefault(selector,[]).append(self.getProperty(line)) property = self.getProperty(line) properties = [] if selector not in rules else rules[selector] if property not in properties: properties.append(property) rules[selector] = properties # print "%s :: %s" % (selector, "".join(rules[selector])) return rules def hasSelector(self, line): return True if re.search("^([#a-z,\.:\s]+){", line) else False def getSelector(self, line): s = re.search("^([#a-z,:\.\s]+){", line).group(1) return "_".join(s.strip().split()) def hasProperty(self, line): return True if re.search("^\s?[a-z-]+:[^;]+;", line) else False def getProperty(self, line): return re.search("([a-z-]+:[^;]+;)", line).group(1) class Consolidator: """Class to consolidate CSS rule attributes""" def run(self, outfile, files): parser = CssParser() rules = {} for file in files: try: parser.file = open(file) rules = parser.parse(rules) except IOError: print "Cannot read file: " + file finally: parser.file.close() self.serialize( [(selector, rules[selector]) for selector in parser.order], outfile ) def serialize(self, rules, outfile): try: f = open(outfile, "w") for rule in rules: f.write( "%s {\n\t%s\n}\n\n" % ( " ".join(rule[0].split("_")), "\n\t".join(rule[1]) ) ) except IOError: print "Cannot write output to: " + outfile finally: f.close() def init(): op = optparse.OptionParser( usage="Usage: %prog [options] <output file> <stylesheet1> " + "<stylesheet2> ... <stylesheetN>", description="Combine CSS rules spread across multiple " + "stylesheets into a single file" ) opts, args = op.parse_args() if len(args) < 3: if len(args) == 1: print "Error: No input files specified.\n" elif len(args) == 2: print "Error: One input file specified, nothing to combine.\n" op.print_help(); exit(-1) return [opts, args] if __name__ == '__main__': opts, args = init() outfile, stylesheets = [args[0], args[1:]] c = Consolidator() c.run(outfile, stylesheets) Test CSS file 1: body { background-color: #e7e7e7; } p { margin: 1em 0em; } File 2: body { font-size: 16px; } #header .title { font-family: Tahoma, Geneva, sans-serif; font-size: 1.9em; } #header .title a, #header .title a:hover { color: #f5f5f5; border-bottom: none; text-shadow: 2px 2px 3px rgba(0, 0, 0, 1); } Thanks in advance.

    Read the article

< Previous Page | 102 103 104 105 106 107 108 109 110 111 112 113  | Next Page >