Mercurial > libervia-backend
annotate sat/tools/common/files_utils.py @ 2661:661f66d41215
core (xmpp): send initial presence only after all profileConnected have been treated:
presence is now sent after profileConnected methods are done, this avoid to have to deal with synchronisation in connection event.
For instance, PEP events should not be sent before presence is sent, so profileConnected methods can assume PEP events are not
done yet, and do needed initialisation using async method if necessary.
This has been done to avoid overcomplicated synchronisation in XEP-0384 plugin (network calls are needed to initialise session,
but PEP events need an initialised session to be treated).
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 11 Aug 2018 18:24:55 +0200 |
parents | 56f94936df1e |
children | 003b8b4b56a7 |
rev | line source |
---|---|
2593
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python2 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # SAT: a jabber client |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
5 # Copyright (C) 2009-2018 Jérôme Poisson (goffi@goffi.org) |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 """tools to help manipulating files""" |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 import os.path |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 def get_unique_name(path): |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 """generate a path with a name not conflicting with existing file |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 @param path(unicode): path to the file to create |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 @return (unicode): unique path (can be the same as path if there is not conflict) |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 """ |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 ori_path = path |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 idx = 1 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 while os.path.exists(path): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2593
diff
changeset
|
33 path = ori_path + u"_" + unicode(idx) |
2593
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 idx += 1 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 return path |