I hereby claim:
- I am DanielSzoska on github.
- I am dszoska (https://keybase.io/dszoska) on keybase.
- I have a public key whose fingerprint is A990 2C13 BCBE 46F4 9D2F EFE0 2766 EF00 8023 F2D1
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
# Voraussetzung: mitglieder.csv wird eingelesen mit csv.DictReader | |
# erste Zeile der CSV-Datei enthält die Feldnamen | |
members = csv.DictReader(open('mitglieder.csv', 'r'), ...) | |
for member in members: | |
active_member = member['Austrittsdatum'] == "" # wenn Spalte nicht leer, dann ist Mitglied ausgetreten | |
if active_member: | |
# hier PDF-Datei generieren | |
# nun entscheiden, ob per Mail schicken oder PDF ins Druckverzeichnis kopieren |
{ | |
"metadata": { | |
"name": "Untitled0" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ |
# Skizze, wie das Löschen und Entlöschen eines Belegs in etwa funktionieren soll | |
# die Funktion basiert darauf, daß der Inhalt des Feldes "KASSENNAME" in weiteren | |
# Prozeßschritten definitiv nie benötigt wird | |
# außerdem wird das Image in der IBF-Datei nicht wirklich gelöscht, sondern erhält | |
# nur eine andere PIC-Nummer, die es so definitiv auch nie geben kann. Somit ist | |
# ein Entlöschen sowohl des Belegs als auch des Images problemlos möglich. Durch | |
# das Ändern der PIC-Nummer ist sichergestellt, daß das Image in nachfolgenden | |
# Prozessen wirklich nicht gefunden werden kann | |
class CDB_Form(object): | |
def delete(self): |
>>> a = '1234aaaa56789bbbbbb0123456789ccccccc1111111dddddddddd' | |
>>> b = 'aa12456bbbb0123cc8cccc111111dddddd567889' | |
>>> import difflib | |
>>> s = difflib.SequenceMatcher(None, a, b) | |
>>> s.get_opcodes() | |
[('insert', 0, 0, 0, 2), ('equal', 0, 2, 2, 4), ('delete', 2, 3, 4, 4), ('equal', 3, 4, 4, 5), ('delete', 4, 8, 5, 5), ('equal', 8, 10, 5, 7), ('delete', 10, 15, 7, 7), ('equal', 15, 23, 7, 15), ('replace', 23, 27, 15, 17), ('equal', 27, 28, 17, 18), ('delete', 28, 29, 18, 18), ('equal', 29, 33, 18, 22), ('delete', 33, 37, 22, 22), ('equal', 37, 49, 22, 34), ('replace', 49, 53, 34, 40)] | |
>>> i = s.get_grouped_opcodes() | |
>>> next(i) | |
[('insert', 0, 0, 0, 2), ('equal', 0, 2, 2, 4), ('delete', 2, 3, 4, 4), ('equal', 3, 4, 4, 5), ('delete', 4, 8, 5, 5), ('equal', 8, 10, 5, 7), ('delete', 10, 15, 7, 7), ('equal', 15, 18, 7, 10)] | |
>>> next(i) |
import logging | |
# configuration of the default standard logger - log to a file | |
logging.basicConfig(format='%(asctime)s %(message)s', | |
level=logging.DEBUG, | |
filename='logfile.log', | |
datefmt='%d.%m.%Y %H:%M:%S') | |
# we need an additional logger, that will log to the console | |
# use at main or program start |
class Gui(object) | |
def init_remote_control(self): | |
if self.activate_remote_control: | |
self.create_timer() | |
def create_timer(self): | |
self.timer = QTimer() | |
self.timer.timeout.connect(self.update) | |
self.timer.start(1000) |
from collections import Counter | |
class LiveCells(object): | |
def __init__(self): | |
self.cells = set() | |
def add_cell(self, position): | |
self.cells.add(position) | |