Skip to content

Instantly share code, notes, and snippets.

from Products.Five import BrowserView
from zope.interface import implementer
from zope.publisher.interfaces.browser import IPublishTraverse
@implementer(IPublishTraverse)
class AuthorView(BrowserView):
user_id = None
def publishTraverse(self, request, name):
@davisagli
davisagli / gist:23663cfa164460f3b3a2
Created September 25, 2014 19:47
Using the CloudShare API from Python
from hashlib import sha1
import random
import requests
import string
import time
# these come from your CloudShare account page
USER_ID = ''
KEY = ''
@davisagli
davisagli / gist:2317969
Created April 6, 2012 07:42
Marmoset patching
import inspect
def marmoset_patch(func, s, r):
source = inspect.getsource(func).replace(s, r)
exec source in func.func_globals
func.func_code = func.func_globals[func.__name__].func_code
def foo():
print 1
print 2
<browser:view
for="plone.portlets.interfaces.IPortletAssignmentMapping"
name="+"
class=".adding.PortletAdding"
allowed_interface="plone.app.portlets.browser.interfaces.IPortletAdding"
permission="plone.app.portlets.ManagePortlets"
/>
<browser:view
for="plone.app.portlets.interfaces.IUserPortletAssignmentMapping"
@davisagli
davisagli / gist:5668242
Created May 29, 2013 05:59
Celery & Zope transactions

Let's test integration between Zope transactions and celery tasks.

First let's turn off celery's asynchronous behavior so it's easier to check when tasks have been queued:

>>> from celery import Celery
>>> celery = Celery('example.celery')
>>> celery.conf.CELERY_ALWAYS_EAGER = True
>>> celery.conf.BROKER_BACKEND = 'memory'
@davisagli
davisagli / gist:5824709
Last active December 18, 2015 18:19
Calling Salesforce as a celery task, from within a Zope transaction
from celery import Celery, Task
from requests.exceptions import ConnectionError
from simple_salesforce import Salesforce
import transaction
celery = Celery(
'path.to.this.module',
broker='amqp://localhost//',
backend='amqp://localhost//',
)
@davisagli
davisagli / gist:5961329
Created July 9, 2013 21:11
Plone dependencies on CMFDefault
$ grep --exclude-dir=CMFDefault --exclude-dir=.svn --exclude='*.pyc' --exclude='*.pyo' --exclude='*.zexp' -r 'Products.CMFDefault' *
Products/Archetypes/ExtensibleMetadata.py:from Products.CMFDefault.utils import _dtmldir
Products/Archetypes/interfaces/base.py: Products.CMFDefault.SkinnedFolder.SkinnedFolder
Products/Archetypes/tests/layer.py: import Products.CMFDefault
Products/Archetypes/tests/layer.py: zcml.load_config('configure.zcml', Products.CMFDefault)
Products/ATContentTypes/content/document.py:from Products.CMFDefault.utils import SimpleHTMLParser
Products/CMFCalendar/browser/calendartool.py:from Products.CMFDefault.browser.utils import decode
Products/CMFCalendar/browser/calendartool.py:from Products.CMFDefault.browser.utils import memoize
Products/CMFCalendar/browser/calendartool.py:from Products.CMFDefault.browser.utils import ViewBase
Products/CMFCalendar/browser/configure.zcml: layer="Products.CMFDefault.interfaces.ICMFDefaultSkin"
from .models import appmaker
from OFS.Application import install_products
from pyramid.config import Configurator
from pyramid_zodbconn import get_connection
from zope.configuration import xmlconfig
from zope.configuration.config import ConfigurationMachine
import os
def root_factory(request):
@davisagli
davisagli / gist:0315c6d206351c5daa4c
Created October 29, 2014 17:15
class for using CiviCRM API from Python
import json
import requests
class Action(object):
def __init__(self, entity, name):
self.civi = entity.civi
self.entity_name = entity.name
self.name = name

Keybase proof

I hereby claim:

  • I am davisagli on github.
  • I am davisagli (https://keybase.io/davisagli) on keybase.
  • I have a public key ASDutQViikK1K9Mb7n1PuFHh81ZWUMYDNO-OEIorm5xxTwo

To claim this, I am signing this object: