# Path: events/events.py
# KNOWN_ATTRIBUTES = ['start', 'end', 'recurrence', 'allday', 'title', 'description', 'location', 'alarm', 'alarmmin']
# UTC_STRING = """BEGIN:VTIMEZONE
# TZID:UTC
# BEGIN:STANDARD
# DTSTART:20000101T000000
# RRULE:FREQ=YEARLY;BYMONTH=1
# TZNAME:UTC
# TZOFFSETFROM:+0000
# TZOFFSETTO:+0000
# END:STANDARD
# END:VTIMEZONE"""
# ZERO = datetime.timedelta(0)
# HOUR = datetime.timedelta(hours=1)
# class Event(pisiinterfaces.Syncable):
# class UTC(datetime.tzinfo):
# class CustomOffset(datetime.tzinfo):
# class Recurrence:
# class AbstractCalendarSynchronizationModule(pisiinterfaces.AbstractSynchronizationModule):
#     def __init__( self, id, updated, attributes,  attributesToUTF = True):
#     def compare(self,  e):
#     def merge( self, e ):
#     def prettyPrint ( self ):
#     def utcoffset(self, dt):
#     def tzname(self, dt):
#     def dst(self, dt):
#     def __init__(self, name, st):
#     def utcoffset(self, dt):
#     def tzname(self, dt):
#     def dst(self, dt):
#     def __init__(self):
#     def initFromData(self,  data):
#     def initFromAttributes(self,  rrule,  dtstart,  dtend = None,  isAllDay = False):   
#     def getData(self):
#     def getDTStart(self):
#     def getDTEnd(self):
#     def getRRule(self):
#     def isAllDay(self):
#     def __eq__(self,  other):
#     def __ne__(self,  other):
#     def prettyPrint ( self ):
#     def __init__(self,  verbose,  soft,  modulesString,  config,  configsection,  name = "unkown contact source"):
#     def allEvents( self ):
#     def getEvent(self,  id):
#     def addEvent( self, eventInstance ):
#     def replaceEvent( self, id, updatedEvent):
#     def removeEvent( self, id ):
# def assembleID():


import os.path
import sys,os,re
import vobject
import vobjecttools
import pisiprogress
import thirdparty.conduit.SyncmlModule as SyncmlModule
from events import events
from pisiconstants import *
""" 
Syncronize with SyncML (Calendar)

This file is part of Pisi. This implementation is based on the Conduit branch of John Carr (http://git.gnome.org/cgit/conduit/log/?h=syncml),
which was one of the very first Python Syncml implementation - based on a ctime binding to the libsyncml library (https://libsyncml.opensync.org/).
The bindings were kept as found there - but I changed a lot the SyncModule file - in order to keep it as simple as possible.
Go and check L{thirdparty.conduit.SyncmlModule} for some more details.

Pisi is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Pisi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Pisi.  If not, see <http://www.gnu.org/licenses/>

"""


# Allows us to import contact
sys.path.insert(0,os.path.abspath(__file__+"/../.."))

SYNCMLSERVER_IDENTIFIER = "pisi"
"""What app name to use when connecting to Syncml server"""


# Path: events/events.py
# KNOWN_ATTRIBUTES = ['start', 'end', 'recurrence', 'allday', 'title', 'description', 'location', 'alarm', 'alarmmin']
# UTC_STRING = """BEGIN:VTIMEZONE
# TZID:UTC
# BEGIN:STANDARD
# DTSTART:20000101T000000
# RRULE:FREQ=YEARLY;BYMONTH=1
# TZNAME:UTC
# TZOFFSETFROM:+0000
# TZOFFSETTO:+0000
# END:STANDARD
# END:VTIMEZONE"""
# ZERO = datetime.timedelta(0)
# HOUR = datetime.timedelta(hours=1)
# class Event(pisiinterfaces.Syncable):
# class UTC(datetime.tzinfo):
# class CustomOffset(datetime.tzinfo):
# class Recurrence:
# class AbstractCalendarSynchronizationModule(pisiinterfaces.AbstractSynchronizationModule):
#     def __init__( self, id, updated, attributes,  attributesToUTF = True):
#     def compare(self,  e):
#     def merge( self, e ):
#     def prettyPrint ( self ):
#     def utcoffset(self, dt):
#     def tzname(self, dt):
#     def dst(self, dt):
#     def __init__(self, name, st):
#     def utcoffset(self, dt):
#     def tzname(self, dt):
#     def dst(self, dt):
#     def __init__(self):
#     def initFromData(self,  data):
#     def initFromAttributes(self,  rrule,  dtstart,  dtend = None,  isAllDay = False):   
#     def getData(self):
#     def getDTStart(self):
#     def getDTEnd(self):
#     def getRRule(self):
#     def isAllDay(self):
#     def __eq__(self,  other):
#     def __ne__(self,  other):
#     def prettyPrint ( self ):
#     def __init__(self,  verbose,  soft,  modulesString,  config,  configsection,  name = "unkown contact source"):
#     def allEvents( self ):
#     def getEvent(self,  id):
#     def addEvent( self, eventInstance ):
#     def replaceEvent( self, id, updatedEvent):
#     def removeEvent( self, id ):
# def assembleID():


# Path: modules/calendar_syncml.py
import os.path
import sys,os,re
import vobject
import vobjecttools
import pisiprogress
import thirdparty.conduit.SyncmlModule as SyncmlModule
from events import events
from pisiconstants import *

""" 
Syncronize with SyncML (Calendar)

This file is part of Pisi. This implementation is based on the Conduit branch of John Carr (http://git.gnome.org/cgit/conduit/log/?h=syncml),
which was one of the very first Python Syncml implementation - based on a ctime binding to the libsyncml library (https://libsyncml.opensync.org/).
The bindings were kept as found there - but I changed a lot the SyncModule file - in order to keep it as simple as possible.
Go and check L{thirdparty.conduit.SyncmlModule} for some more details.

Pisi is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Pisi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Pisi.  If not, see <http://www.gnu.org/licenses/>

"""


# Allows us to import contact
sys.path.insert(0,os.path.abspath(__file__+"/../.."))

SYNCMLSERVER_IDENTIFIER = "pisi"
"""What app name to use when connecting to Syncml server"""


class SynchronizationModule(events.AbstractCalendarSynchronizationModule):