Skip to content

Commit 1b1daa5

Browse files
* 'master' of https://github.com/pineapplemachine/PyDwarf: (35 commits) Added a changelog, changelogs are cool Updated version numbers for manager.py, and raws and pydwarf packages Updated version numbers for scripts updated since v1.0.0 Rebuilt shitty html documentation Tweaked material values in pineapple.greensteel Improvements to raws package Added parse and parseone to raws.__init__ for convenience Rewrote file.tokens method to call token.tokens instead of having its own logic More operator overload tomfoolery More fixes related to overloads, this time to raws.file.root and raws.file.tail Even more overload related fixes More bugfixes related to those infernal operator overloads Added some useful operator overloads to raws.tokenfilter Several additions and bugfixes Fixed logging error in pineapple.cavegrass Fixed response.__str__ method Even more documentation More raws.file documentation Added file attribute to raws.token More documentation and improved existing ... Conflicts: .gitignore readme.md
2 parents d567713 + 7e6078b commit 1b1daa5

File tree

22 files changed

+1929
-234
lines changed

22 files changed

+1929
-234
lines changed

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
*.DS_Store
22
*.pyc
3+
*.xcf
4+
*test.py
35

6+
# Manager logs go here
47
logs/*
8+
9+
# Outputted raws go here (for my personal testing and stuff anyway)
510
output/*
11+
backup/*
12+
13+
# Older DF versions go here (for my help figuring version compatibility)
14+
refs/*
15+
16+
# Stuff that's just not meant to be committed right now
17+
build/*

changelog.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
v1.0.1: Strange Mood
2+
3+
Fixed pineapple.boneflux reaction by being less bad at string formatting
4+
Fixed pineapple.utils.addreaction not adding an OBJECT:REACTION token to created files
5+
Fixed new grasses in pineapple.cavegrass not being recognized by DF
6+
Fixed a small issue with logging in pineapple.cavegrass
7+
Fixed non-raws file from input directory not being written to output
8+
Fixed pydwarf.response casting to string always returning a string starting with "SUCCESS" even when unsuccessful
9+
Added a lot more documentation
10+
Added a shitty WIP tool for outputting docstrings as more readable html
11+
Added a list method to queryable raws objects which acts as a shortcut for raw.tokenlist(something.tokens())
12+
Added a file attribute to raws.token objects for tracking which file they belong to, if any
13+
Added a bunch of helpful operator overloads
14+
Added length and clear methods to raws.file
15+
Added some convenience things to the raws package: raws.parse and raws.parseone refer to the raws.token static methods, raws.filter refers to raws.tokenfilter
16+
Added index and slice functionality to raws.token and raws.file, most easily accessible via conventional notations like token[1] or token[-8:0:2]
17+
Added step argument to tokens method for raws.token and raws.file
18+
Improved error handling for bad config settings
19+
Improved raws.tokenlist casting to string
20+
Improved objdict method to return a dictionary of raws.tokenlist objects where previously they were regular lists
21+
Improved handling of assignment of illegal strings to token text, now automatically resolves some common pitfalls
22+
Improved argument handling for raws.boolfilter static methods all, any, one, and none
23+
Tweaked grass colors in pineapple.cavegrass
24+
Tweaked names, craftable items, and material values in pineapple.greensteel
25+
26+
v1.0.0: A New Hope
27+
28+
First Release

config/config.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,13 @@ def setuplogger(self):
5959
stdouthandler.setFormatter(logging.Formatter('%(asctime)s: %(levelname)s: %(message)s', datetimeformat))
6060
pydwarf.log.addHandler(stdouthandler)
6161
# Handler for log file output
62-
logfilehandler = logging.FileHandler(self.log)
63-
logfilehandler.setLevel(logging.DEBUG)
64-
logfilehandler.setFormatter(logging.Formatter('%(asctime)s: %(filename)s[%(lineno)s]: %(levelname)s: %(message)s', datetimeformat))
65-
pydwarf.log.addHandler(logfilehandler)
62+
if self.log:
63+
logdir = os.path.dirname(self.log)
64+
if not os.path.exists(logdir): os.makedirs(logdir)
65+
logfilehandler = logging.FileHandler(self.log)
66+
logfilehandler.setLevel(logging.DEBUG)
67+
logfilehandler.setFormatter(logging.Formatter('%(asctime)s: %(filename)s[%(lineno)s]: %(levelname)s: %(message)s', datetimeformat))
68+
pydwarf.log.addHandler(logfilehandler)
6669

6770
def setuppackages(self):
6871
self.importedpackages = [importlib.import_module(package) for package in self.packages]
@@ -76,7 +79,7 @@ def setupversion(self):
7679
pydwarf.log.info('Unable to detect Dwarf Fortress version.')
7780
else:
7881
pydwarf.log.info('Detected Dwarf Fortress version %s.' % self.version)
79-
elif conf.version is None:
82+
elif self.version is None:
8083
pydwarf.log.warning('No Dwarf Fortress version was specified. Scripts will be run regardless of their indicated compatibility.')
8184
else:
8285
pydwarf.log.info('Managing Dwarf Fortress version %s.' % self.version)

docs/build.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Disclaimer: This is a shitty WIP
2+
3+
import sys
4+
import os
5+
6+
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..'))
7+
8+
import inspect
9+
10+
import raws
11+
import pydwarf
12+
13+
output = 'index.html'
14+
15+
items = {
16+
'raws.token': raws.token,
17+
'raws.file': raws.file,
18+
'raws.dir': raws.dir,
19+
'raws.color': raws.color,
20+
'raws.tokenfilter': raws.tokenfilter,
21+
'raws.boolfilter': raws.boolfilter,
22+
'pydwarf.session': pydwarf.session,
23+
'pydwarf.urist': pydwarf.urist
24+
}
25+
26+
alldoc = {}
27+
for itemname, item in items.iteritems():
28+
itemdoc = {}
29+
alldoc[itemname] = itemdoc
30+
31+
for membername, member in inspect.getmembers(item):
32+
memdoc = {}
33+
itemdoc[membername] = member
34+
35+
with open(output, 'wb') as html:
36+
css = 'pre { background-color: #ddd; color: #113 }'
37+
html.write('<html><head><title>%(title)s</title><style>%(style)s</style></head><body>' % {'title': 'PyDwarf docs', 'style': css})
38+
html.write('<h1 style="font-size: 50; color: #800">Warning: This is a shitty WIP.</h1>')
39+
for itemname in sorted(alldoc.iterkeys()):
40+
itemdoc = alldoc[itemname]
41+
html.write('<h1>%s</h1>' % itemname)
42+
for membername in sorted(itemdoc.iterkeys()):
43+
member = itemdoc[membername]
44+
if callable(member) and membername not in ('__module__', '__str__', '__repr__', '__doc__'):
45+
html.write('<p><b>%s</b><br><pre>%s</pre></p>' % (membername, member.__doc__))
46+
html.write('</body></html>')
47+
48+
49+
50+
51+

0 commit comments

Comments
 (0)