mirror of
https://github.com/correl/SleekXMPP.git
synced 2024-11-23 19:19:53 +00:00
Sadly, dateutil is not actually part of the standard lib.
Thus, using the XEP-0082 and XEP-0202 introduces a dependency on the dateutil package (installable using pip install python-dateutil). Maybe we'll be able to rework how these plugins work to avoid needing dateutil, but for now this will have to do.
This commit is contained in:
parent
9ffdba8643
commit
a0767f6af6
6 changed files with 61 additions and 10 deletions
3
README
3
README
|
@ -9,6 +9,9 @@ We try to keep requirements to a minimum, but we suggest that you install http:/
|
||||||
If you do not install this library, you may need to specify the server/port for services that use SRV records (like GTalk).
|
If you do not install this library, you may need to specify the server/port for services that use SRV records (like GTalk).
|
||||||
"sudo pip install dnspython" on a *nix system with pip installed.
|
"sudo pip install dnspython" on a *nix system with pip installed.
|
||||||
|
|
||||||
|
Two time related plugins (XEP-0082 and XEP-0202) also require the dateutil package, but that is not a hard requirement if you
|
||||||
|
don't need those plugins.
|
||||||
|
|
||||||
SleekXMPP has several design goals/philosophies:
|
SleekXMPP has several design goals/philosophies:
|
||||||
- Low number of dependencies.
|
- Low number of dependencies.
|
||||||
- Every XEP as a plugin.
|
- Every XEP as a plugin.
|
||||||
|
|
6
setup.py
6
setup.py
|
@ -54,11 +54,15 @@ packages = [ 'sleekxmpp',
|
||||||
'sleekxmpp/plugins/xep_0059',
|
'sleekxmpp/plugins/xep_0059',
|
||||||
'sleekxmpp/plugins/xep_0060',
|
'sleekxmpp/plugins/xep_0060',
|
||||||
'sleekxmpp/plugins/xep_0060/stanza',
|
'sleekxmpp/plugins/xep_0060/stanza',
|
||||||
|
'sleekxmpp/plugins/xep_0066',
|
||||||
'sleekxmpp/plugins/xep_0085',
|
'sleekxmpp/plugins/xep_0085',
|
||||||
'sleekxmpp/plugins/xep_0086',
|
'sleekxmpp/plugins/xep_0086',
|
||||||
'sleekxmpp/plugins/xep_0092',
|
'sleekxmpp/plugins/xep_0092',
|
||||||
'sleekxmpp/plugins/xep_0128',
|
'sleekxmpp/plugins/xep_0128',
|
||||||
'sleekxmpp/plugins/xep_0199',
|
'sleekxmpp/plugins/xep_0202',
|
||||||
|
'sleekxmpp/plugins/xep_0203',
|
||||||
|
'sleekxmpp/plugins/xep_0224',
|
||||||
|
'sleekxmpp/plugins/xep_0249',
|
||||||
'sleekxmpp/features',
|
'sleekxmpp/features',
|
||||||
'sleekxmpp/features/feature_mechanisms',
|
'sleekxmpp/features/feature_mechanisms',
|
||||||
'sleekxmpp/features/feature_mechanisms/stanza',
|
'sleekxmpp/features/feature_mechanisms/stanza',
|
||||||
|
|
|
@ -6,6 +6,20 @@
|
||||||
See the file LICENSE for copying permission.
|
See the file LICENSE for copying permission.
|
||||||
"""
|
"""
|
||||||
__all__ = ['xep_0004', 'xep_0009', 'xep_0012', 'xep_0030', 'xep_0033',
|
__all__ = ['xep_0004', 'xep_0009', 'xep_0012', 'xep_0030', 'xep_0033',
|
||||||
'xep_0045', 'xep_0050', 'xep_0060', 'xep_0066', 'xep_0082',
|
'xep_0045', 'xep_0050', 'xep_0060', 'xep_0066', 'xep_0085',
|
||||||
'xep_0085', 'xep_0086', 'xep_0092', 'xep_0128', 'xep_0199',
|
'xep_0086', 'xep_0092', 'xep_0128', 'xep_0199', 'xep_0203',
|
||||||
'xep_0202', 'xep_0203', 'xep_0224', 'xep_0249', 'gmail_notify']
|
'xep_0224', 'xep_0249', 'gmail_notify']
|
||||||
|
|
||||||
|
# Some plugins may require external dependencies beyond what the
|
||||||
|
# core SleekXMPP installation requires. Thus they should only by
|
||||||
|
# imported automatically if those dependecies are met.
|
||||||
|
|
||||||
|
HAVE_DATEUTIL = True
|
||||||
|
try:
|
||||||
|
import dateutil
|
||||||
|
except:
|
||||||
|
HAVE_DATEUTIL = False
|
||||||
|
|
||||||
|
if HAVE_DATEUTIL:
|
||||||
|
__all__.append('xep_0082')
|
||||||
|
__all__.append('xep_0202')
|
||||||
|
|
|
@ -6,11 +6,18 @@
|
||||||
See the file LICENSE for copying permission.
|
See the file LICENSE for copying permission.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import logging
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
from dateutil import parser
|
|
||||||
from dateutil.tz import tzoffset, tzutc
|
|
||||||
from sleekxmpp.plugins.base import base_plugin
|
from sleekxmpp.plugins.base import base_plugin
|
||||||
|
|
||||||
|
try:
|
||||||
|
from dateutil import parser
|
||||||
|
from dateutil.tz import tzoffset, tzutc
|
||||||
|
except e:
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
log.warning("XEP-0082 plugin requires dateutil")
|
||||||
|
|
||||||
|
|
||||||
# =====================================================================
|
# =====================================================================
|
||||||
# To make it easier for stanzas without direct access to plugin objects
|
# To make it easier for stanzas without direct access to plugin objects
|
||||||
|
|
|
@ -6,6 +6,23 @@
|
||||||
See the file LICENSE for copying permission.
|
See the file LICENSE for copying permission.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from sleekxmpp.plugins.xep_0202 import stanza
|
import logging
|
||||||
from sleekxmpp.plugins.xep_0202.stanza import EntityTime
|
import sleekxmpp
|
||||||
from sleekxmpp.plugins.xep_0202.time import xep_0202
|
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
HAVE_DATEUTIL = True
|
||||||
|
try:
|
||||||
|
import dateutil
|
||||||
|
except:
|
||||||
|
HAVE_DATEUTIL = False
|
||||||
|
|
||||||
|
|
||||||
|
if HAVE_DATEUTIL:
|
||||||
|
from sleekxmpp.plugins.xep_0202 import stanza
|
||||||
|
from sleekxmpp.plugins.xep_0202.stanza import EntityTime
|
||||||
|
from sleekxmpp.plugins.xep_0202.time import xep_0202
|
||||||
|
else:
|
||||||
|
log.warning("XEP-0202 requires the dateutil package")
|
||||||
|
|
|
@ -6,12 +6,18 @@
|
||||||
See the file LICENSE for copying permission.
|
See the file LICENSE for copying permission.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import logging
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
from dateutil.tz import tzoffset, tzutc
|
|
||||||
|
|
||||||
from sleekxmpp.xmlstream import ElementBase
|
from sleekxmpp.xmlstream import ElementBase
|
||||||
from sleekxmpp.plugins import xep_0082
|
from sleekxmpp.plugins import xep_0082
|
||||||
|
|
||||||
|
try:
|
||||||
|
from dateutil.tz import tzutc
|
||||||
|
except:
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
log.warning("XEP-0202 plugin requies dateutil package")
|
||||||
|
|
||||||
|
|
||||||
class EntityTime(ElementBase):
|
class EntityTime(ElementBase):
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue