imip-agent

imiptools/stores/__init__.py

1285:4af5f81f5301
2017-10-01 Paul Boddie Changed the initialisation of resources in the agent programs to immediately obtain configuration defaults, if necessary. Introduced support for disabling free/busy publishing by using None as the publishing directory. Added more documentation for the system configuration options. client-editing-simplification
     1 #!/usr/bin/env python     2      3 """     4 General support for calendar data storage.     5      6 Copyright (C) 2016, 2017 Paul Boddie <paul@boddie.org.uk>     7      8 This program is free software; you can redistribute it and/or modify it under     9 the terms of the GNU General Public License as published by the Free Software    10 Foundation; either version 3 of the License, or (at your option) any later    11 version.    12     13 This program is distributed in the hope that it will be useful, but WITHOUT    14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS    15 FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more    16 details.    17     18 You should have received a copy of the GNU General Public License along with    19 this program.  If not, see <http://www.gnu.org/licenses/>.    20 """    21     22 from imiptools.stores.manifest import stores    23     24 # Access functions.    25     26 def get_store(store_type, store_dir):    27     28     """    29     Return a store for the given 'store_type' and 'store_dir'. If 'store_dir'    30     is given as a null or false value then the configured default is used.    31     """    32     33     return stores[store_type].Store(store_dir)    34     35 def get_publisher(publishing_dir):    36     37     """    38     Return a publishing resource employing 'publishing_dir'. If the specified    39     directory is given as a null or false value, None is returned. Thus, all    40     free/busy publishing can be disabled by changing the configuration to use    41     None as the directory.    42     """    43     44     return publishing_dir and stores["file"].Publisher(publishing_dir) or None    45     46 def get_journal(store_type, journal_dir):    47     48     """    49     Return a journal for the given 'store_type' and 'journal_dir'. If    50     'journal_dir' is given as a null or false value then the configured default    51     is used.    52     """    53     54     return stores[store_type].Journal(journal_dir)    55     56 # vim: tabstop=4 expandtab shiftwidth=4