~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to doc/dev/faq.rst

  • Committer: mattgiuca
  • Date: 2008-01-09 04:12:08 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:138
Added new app: fileservice. (The Ajax service behind the file browser).
This is a stub.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
.. IVLE - Informatics Virtual Learning Environment
2
 
   Copyright (C) 2007-2009 The University of Melbourne
3
 
 
4
 
.. This program is free software; you can redistribute it and/or modify
5
 
   it under the terms of the GNU General Public License as published by
6
 
   the Free Software Foundation; either version 2 of the License, or
7
 
   (at your option) any later version.
8
 
 
9
 
.. This program is distributed in the hope that it will be useful,
10
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 
   GNU General Public License for more details.
13
 
 
14
 
.. You should have received a copy of the GNU General Public License
15
 
   along with this program; if not, write to the Free Software
16
 
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
 
 
18
 
.. _ref-dev-faq:
19
 
 
20
 
**************************
21
 
Frequently Asked Questions
22
 
**************************
23
 
 
24
 
This is a list of Frequently Asked Questions for IVLE developers. It answers
25
 
questions about common issues encountered when bludgeoning the system into
26
 
behaving.
27
 
 
28
 
.. _ref-dev-faq-how:
29
 
 
30
 
How can I...
31
 
============
32
 
 
33
 
.. _ref-dev-faq-config:
34
 
 
35
 
... get data out of the IVLE configuration?
36
 
-------------------------------------------
37
 
 
38
 
::
39
 
 
40
 
    from ivle.config import Config
41
 
    config = Config()
42
 
 
43
 
This makes `config`, a dictionary-tree containing the whole config hierarchy.
44
 
 
45
 
For example, to get the Subversion repository path, use
46
 
``config['paths']['svn']['repo_path']``.
47
 
 
48
 
.. note::
49
 
   For code running inside the jail, you will see different configuration
50
 
   variables than code running outside. It will be missing a lot of data, and
51
 
   will contain some user-specific data.
52
 
 
53
 
Subversion
54
 
----------
55
 
 
56
 
... get the local file path to a user's Subversion repo?
57
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58
 
 
59
 
Get a :ref:`config <ref-dev-faq-config>` object, and use ::
60
 
 
61
 
    repopath = os.path.join(config['paths']['svn']['repo_path'],
62
 
                            'users', username)
63
 
 
64
 
(This should probably be abstracted.)
65
 
 
66
 
... get the http:// URL for a user's Subversion repo?
67
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68
 
 
69
 
Get a :ref:`config <ref-dev-faq-config>` object, and use ::
70
 
 
71
 
    repourl = config['urls']['svn_addr'] + '/users/' + username
72
 
 
73
 
(This should probably be abstracted.)
74
 
 
75
 
... get a Subversion client from Python?
76
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77
 
 
78
 
::
79
 
 
80
 
    import ivle.svn
81
 
    svnclient = ivle.svn.create_auth_svn_client(username, password)
82
 
 
83
 
If you don't have any auth credentials and you just want to do SVN things
84
 
which don't require auth (though I don't see why this situation would arise),
85
 
you can get an auth-less SVN client, which will raise exceptions if you try to
86
 
do authy things (e.g., commit, update or checkout)::
87
 
 
88
 
    import pysvn
89
 
    svnclient = pysvn.Client()
90
 
 
91
 
In either case, the client object will raise `pysvn.ClientError` objects, so
92
 
you should be handling those.
93
 
 
94
 
You may wish to make error messages simpler using this line::
95
 
 
96
 
    svnclient.exception_style = 0
97
 
 
98
 
A good example of Subversion client code is in
99
 
``ivle/fileservice_lib/action.py``.
100
 
 
101
 
.. _ref-dev-faq-where:
102
 
 
103
 
Where do I find...
104
 
==================
105
 
 
106
 
.. This is for finding obscure things in the code.