├── .github └── workflows │ └── push.yaml ├── .pylintrc ├── LICENSE ├── README.md ├── exercise10_1.py ├── exercise10_2.py ├── exercise10_3.py ├── exercise11_1.py ├── exercise11_2.py ├── exercise12_3.py ├── exercise12_4.py ├── exercise12_5.py ├── exercise13_1.py ├── exercise13_2.py ├── exercise3_1.py ├── exercise3_2.py ├── exercise3_3.py ├── exercise4_1.py ├── exercise4_2.py ├── exercise4_6.py ├── exercise4_7.py ├── exercise5_1.py ├── exercise5_2.py ├── exercise6_1.py ├── exercise6_3.py ├── exercise6_5.py ├── exercise7_1.py ├── exercise7_2.py ├── exercise7_3.py ├── exercise8_1.py ├── exercise8_2.py ├── exercise8_2.txt ├── exercise8_3.py ├── exercise8_4.py ├── exercise8_5.py ├── exercise8_6.py ├── exercise9_1.py ├── exercise9_2.py ├── exercise9_3.py ├── exercise9_4.py ├── exercise9_5.py └── mbox-short.txt /.github/workflows/push.yaml: -------------------------------------------------------------------------------- 1 | name: On Push 2 | on: push 3 | jobs: 4 | build: 5 | runs-on: ubuntu-latest 6 | steps: 7 | - name: Checkout code 8 | uses: actions/checkout@v2 9 | - name: Set up Python 3.7 10 | uses: actions/setup-python@v1 11 | with: 12 | python-version: 3.7 13 | - name: Install deps 14 | run: >- 15 | python -m pip install --upgrade pip && 16 | pip install pylint==2.6.0 bs4 17 | - name: Lint python 18 | run: >- 19 | pylint --fail-under=8.20 *.py 20 | -------------------------------------------------------------------------------- /.pylintrc: -------------------------------------------------------------------------------- 1 | [MASTER] 2 | 3 | # A comma-separated list of package or module names from where C extensions may 4 | # be loaded. Extensions are loading into the active Python interpreter and may 5 | # run arbitrary code. 6 | extension-pkg-whitelist= 7 | 8 | # Add files or directories to the blacklist. They should be base names, not 9 | # paths. 10 | ignore=CVS 11 | 12 | # Add files or directories matching the regex patterns to the blacklist. The 13 | # regex matches against base names, not paths. 14 | ignore-patterns= 15 | 16 | # Python code to execute, usually for sys.path manipulation such as 17 | # pygtk.require(). 18 | #init-hook= 19 | 20 | # Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the 21 | # number of processors available to use. 22 | jobs=1 23 | 24 | # Control the amount of potential inferred values when inferring a single 25 | # object. This can help the performance when dealing with large functions or 26 | # complex, nested conditions. 27 | limit-inference-results=100 28 | 29 | # List of plugins (as comma separated values of python module names) to load, 30 | # usually to register additional checkers. 31 | load-plugins= 32 | 33 | # Pickle collected data for later comparisons. 34 | persistent=yes 35 | 36 | # Specify a configuration file. 37 | #rcfile= 38 | 39 | # When enabled, pylint would attempt to guess common misconfiguration and emit 40 | # user-friendly hints instead of false-positive error messages. 41 | suggestion-mode=yes 42 | 43 | # Allow loading of arbitrary C extensions. Extensions are imported into the 44 | # active Python interpreter and may run arbitrary code. 45 | unsafe-load-any-extension=no 46 | 47 | 48 | [MESSAGES CONTROL] 49 | 50 | # Only show warnings with the listed confidence levels. Leave empty to show 51 | # all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. 52 | confidence= 53 | 54 | # Disable the message, report, category or checker with the given id(s). You 55 | # can either give multiple identifiers separated by comma (,) or put this 56 | # option multiple times (only on the command line, not in the configuration 57 | # file where it should appear only once). You can also use "--disable=all" to 58 | # disable everything first and then reenable specific checks. For example, if 59 | # you want to run only the similarities checker, you can use "--disable=all 60 | # --enable=similarities". If you want to run only the classes checker, but have 61 | # no Warning level messages displayed, use "--disable=all --enable=classes 62 | # --disable=W". 63 | disable=raw-checker-failed, 64 | bad-inline-option, 65 | locally-disabled, 66 | file-ignored, 67 | suppressed-message, 68 | useless-suppression, 69 | deprecated-pragma, 70 | use-symbolic-message-instead, 71 | 72 | # Enable the message, report, category or checker with the given id(s). You can 73 | # either give multiple identifier separated by comma (,) or put this option 74 | # multiple time (only on the command line, not in the configuration file where 75 | # it should appear only once). See also the "--disable" option for examples. 76 | enable=c-extension-no-member 77 | 78 | 79 | [REPORTS] 80 | 81 | # Python expression which should return a score less than or equal to 10. You 82 | # have access to the variables 'error', 'warning', 'refactor', and 'convention' 83 | # which contain the number of messages in each category, as well as 'statement' 84 | # which is the total number of statements analyzed. This score is used by the 85 | # global evaluation report (RP0004). 86 | evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) 87 | 88 | # Template used to display messages. This is a python new-style format string 89 | # used to format the message information. See doc for all details. 90 | #msg-template= 91 | 92 | # Set the output format. Available formats are text, parseable, colorized, json 93 | # and msvs (visual studio). You can also give a reporter class, e.g. 94 | # mypackage.mymodule.MyReporterClass. 95 | output-format=text 96 | 97 | # Tells whether to display a full report or only the messages. 98 | reports=no 99 | 100 | # Activate the evaluation score. 101 | score=yes 102 | 103 | 104 | [REFACTORING] 105 | 106 | # Maximum number of nested blocks for function / method body 107 | max-nested-blocks=5 108 | 109 | # Complete name of functions that never returns. When checking for 110 | # inconsistent-return-statements if a never returning function is called then 111 | # it will be considered as an explicit return statement and no message will be 112 | # printed. 113 | never-returning-functions=sys.exit 114 | 115 | 116 | [LOGGING] 117 | 118 | # Format style used to check logging format string. `old` means using % 119 | # formatting, `new` is for `{}` formatting,and `fstr` is for f-strings. 120 | logging-format-style=old 121 | 122 | # Logging modules to check that the string format arguments are in logging 123 | # function parameter format. 124 | logging-modules=logging 125 | 126 | 127 | [VARIABLES] 128 | 129 | # List of additional names supposed to be defined in builtins. Remember that 130 | # you should avoid defining new builtins when possible. 131 | additional-builtins= 132 | 133 | # Tells whether unused global variables should be treated as a violation. 134 | allow-global-unused-variables=yes 135 | 136 | # List of strings which can identify a callback function by name. A callback 137 | # name must start or end with one of those strings. 138 | callbacks=cb_, 139 | _cb 140 | 141 | # A regular expression matching the name of dummy variables (i.e. expected to 142 | # not be used). 143 | dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ 144 | 145 | # Argument names that match this expression will be ignored. Default to name 146 | # with leading underscore. 147 | ignored-argument-names=_.*|^ignored_|^unused_ 148 | 149 | # Tells whether we should check for unused import in __init__ files. 150 | init-import=no 151 | 152 | # List of qualified module names which can have objects that can redefine 153 | # builtins. 154 | redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io 155 | 156 | 157 | [SIMILARITIES] 158 | 159 | # Ignore comments when computing similarities. 160 | ignore-comments=yes 161 | 162 | # Ignore docstrings when computing similarities. 163 | ignore-docstrings=yes 164 | 165 | # Ignore imports when computing similarities. 166 | ignore-imports=no 167 | 168 | # Minimum lines number of a similarity. 169 | min-similarity-lines=4 170 | 171 | 172 | [TYPECHECK] 173 | 174 | # List of decorators that produce context managers, such as 175 | # contextlib.contextmanager. Add to this list to register other decorators that 176 | # produce valid context managers. 177 | contextmanager-decorators=contextlib.contextmanager 178 | 179 | # List of members which are set dynamically and missed by pylint inference 180 | # system, and so shouldn't trigger E1101 when accessed. Python regular 181 | # expressions are accepted. 182 | generated-members= 183 | 184 | # Tells whether missing members accessed in mixin class should be ignored. A 185 | # mixin class is detected if its name ends with "mixin" (case insensitive). 186 | ignore-mixin-members=yes 187 | 188 | # Tells whether to warn about missing members when the owner of the attribute 189 | # is inferred to be None. 190 | ignore-none=yes 191 | 192 | # This flag controls whether pylint should warn about no-member and similar 193 | # checks whenever an opaque object is returned when inferring. The inference 194 | # can return multiple potential results while evaluating a Python object, but 195 | # some branches might not be evaluated, which results in partial inference. In 196 | # that case, it might be useful to still emit no-member and other checks for 197 | # the rest of the inferred objects. 198 | ignore-on-opaque-inference=yes 199 | 200 | # List of class names for which member attributes should not be checked (useful 201 | # for classes with dynamically set attributes). This supports the use of 202 | # qualified names. 203 | ignored-classes=optparse.Values,thread._local,_thread._local 204 | 205 | # List of module names for which member attributes should not be checked 206 | # (useful for modules/projects where namespaces are manipulated during runtime 207 | # and thus existing member attributes cannot be deduced by static analysis). It 208 | # supports qualified module names, as well as Unix pattern matching. 209 | ignored-modules= 210 | 211 | # Show a hint with possible names when a member name was not found. The aspect 212 | # of finding the hint is based on edit distance. 213 | missing-member-hint=yes 214 | 215 | # The minimum edit distance a name should have in order to be considered a 216 | # similar match for a missing member name. 217 | missing-member-hint-distance=1 218 | 219 | # The total number of similar names that should be taken in consideration when 220 | # showing a hint for a missing member. 221 | missing-member-max-choices=1 222 | 223 | # List of decorators that change the signature of a decorated function. 224 | signature-mutators= 225 | 226 | 227 | [STRING] 228 | 229 | # This flag controls whether the implicit-str-concat-in-sequence should 230 | # generate a warning on implicit string concatenation in sequences defined over 231 | # several lines. 232 | check-str-concat-over-line-jumps=no 233 | 234 | 235 | [BASIC] 236 | 237 | # Naming style matching correct argument names. 238 | argument-naming-style=snake_case 239 | 240 | # Regular expression matching correct argument names. Overrides argument- 241 | # naming-style. 242 | #argument-rgx= 243 | 244 | # Naming style matching correct attribute names. 245 | attr-naming-style=snake_case 246 | 247 | # Regular expression matching correct attribute names. Overrides attr-naming- 248 | # style. 249 | #attr-rgx= 250 | 251 | # Bad variable names which should always be refused, separated by a comma. 252 | bad-names=foo, 253 | bar, 254 | baz, 255 | toto, 256 | tutu, 257 | tata 258 | 259 | # Naming style matching correct class attribute names. 260 | class-attribute-naming-style=any 261 | 262 | # Regular expression matching correct class attribute names. Overrides class- 263 | # attribute-naming-style. 264 | #class-attribute-rgx= 265 | 266 | # Naming style matching correct class names. 267 | class-naming-style=PascalCase 268 | 269 | # Regular expression matching correct class names. Overrides class-naming- 270 | # style. 271 | #class-rgx= 272 | 273 | # Naming style matching correct constant names. 274 | const-naming-style=UPPER_CASE 275 | 276 | # Regular expression matching correct constant names. Overrides const-naming- 277 | # style. 278 | #const-rgx= 279 | 280 | # Minimum line length for functions/classes that require docstrings, shorter 281 | # ones are exempt. 282 | docstring-min-length=-1 283 | 284 | # Naming style matching correct function names. 285 | function-naming-style=snake_case 286 | 287 | # Regular expression matching correct function names. Overrides function- 288 | # naming-style. 289 | #function-rgx= 290 | 291 | # Good variable names which should always be accepted, separated by a comma. 292 | good-names=a, 293 | b, 294 | h, 295 | i, 296 | j, 297 | k, 298 | t, 299 | x, 300 | y, 301 | z, 302 | ex, 303 | N, 304 | Run, 305 | _ 306 | 307 | # Include a hint for the correct naming format with invalid-name. 308 | include-naming-hint=no 309 | 310 | # Naming style matching correct inline iteration names. 311 | inlinevar-naming-style=any 312 | 313 | # Regular expression matching correct inline iteration names. Overrides 314 | # inlinevar-naming-style. 315 | #inlinevar-rgx= 316 | 317 | # Naming style matching correct method names. 318 | method-naming-style=snake_case 319 | 320 | # Regular expression matching correct method names. Overrides method-naming- 321 | # style. 322 | #method-rgx= 323 | 324 | # Naming style matching correct module names. 325 | module-naming-style=snake_case 326 | 327 | # Regular expression matching correct module names. Overrides module-naming- 328 | # style. 329 | #module-rgx= 330 | 331 | # Colon-delimited sets of names that determine each other's naming style when 332 | # the name regexes allow several styles. 333 | name-group= 334 | 335 | # Regular expression which should only match function or class names that do 336 | # not require a docstring. 337 | no-docstring-rgx=^_ 338 | 339 | # List of decorators that produce properties, such as abc.abstractproperty. Add 340 | # to this list to register other decorators that produce valid properties. 341 | # These decorators are taken in consideration only for invalid-name. 342 | property-classes=abc.abstractproperty 343 | 344 | # Naming style matching correct variable names. 345 | variable-naming-style=snake_case 346 | 347 | # Regular expression matching correct variable names. Overrides variable- 348 | # naming-style. 349 | #variable-rgx= 350 | 351 | 352 | [SPELLING] 353 | 354 | # Limits count of emitted suggestions for spelling mistakes. 355 | max-spelling-suggestions=4 356 | 357 | # Spelling dictionary name. Available dictionaries: none. To make it work, 358 | # install the python-enchant package. 359 | spelling-dict= 360 | 361 | # List of comma separated words that should not be checked. 362 | spelling-ignore-words= 363 | 364 | # A path to a file that contains the private dictionary; one word per line. 365 | spelling-private-dict-file= 366 | 367 | # Tells whether to store unknown words to the private dictionary (see the 368 | # --spelling-private-dict-file option) instead of raising a message. 369 | spelling-store-unknown-words=no 370 | 371 | 372 | [FORMAT] 373 | 374 | # Expected format of line ending, e.g. empty (any line ending), LF or CRLF. 375 | expected-line-ending-format= 376 | 377 | # Regexp for a line that is allowed to be longer than the limit. 378 | ignore-long-lines=^\s*(# )??$ 379 | 380 | # Number of spaces of indent required inside a hanging or continued line. 381 | indent-after-paren=4 382 | 383 | # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 384 | # tab). 385 | indent-string=' ' 386 | 387 | # Maximum number of characters on a single line. 388 | max-line-length=100 389 | 390 | # Maximum number of lines in a module. 391 | max-module-lines=1000 392 | 393 | # Allow the body of a class to be on the same line as the declaration if body 394 | # contains single statement. 395 | single-line-class-stmt=no 396 | 397 | # Allow the body of an if to be on the same line as the test if there is no 398 | # else. 399 | single-line-if-stmt=no 400 | 401 | 402 | [MISCELLANEOUS] 403 | 404 | # List of note tags to take in consideration, separated by a comma. 405 | notes=FIXME, 406 | XXX, 407 | TODO 408 | 409 | 410 | [DESIGN] 411 | 412 | # Maximum number of arguments for function / method. 413 | max-args=5 414 | 415 | # Maximum number of attributes for a class (see R0902). 416 | max-attributes=7 417 | 418 | # Maximum number of boolean expressions in an if statement (see R0916). 419 | max-bool-expr=5 420 | 421 | # Maximum number of branch for function / method body. 422 | max-branches=12 423 | 424 | # Maximum number of locals for function / method body. 425 | max-locals=15 426 | 427 | # Maximum number of parents for a class (see R0901). 428 | max-parents=7 429 | 430 | # Maximum number of public methods for a class (see R0904). 431 | max-public-methods=20 432 | 433 | # Maximum number of return / yield for function / method body. 434 | max-returns=6 435 | 436 | # Maximum number of statements in function / method body. 437 | max-statements=50 438 | 439 | # Minimum number of public methods for a class (see R0903). 440 | min-public-methods=2 441 | 442 | 443 | [IMPORTS] 444 | 445 | # List of modules that can be imported at any level, not just the top level 446 | # one. 447 | allow-any-import-level= 448 | 449 | # Allow wildcard imports from modules that define __all__. 450 | allow-wildcard-with-all=no 451 | 452 | # Analyse import fallback blocks. This can be used to support both Python 2 and 453 | # 3 compatible code, which means that the block might have code that exists 454 | # only in one or another interpreter, leading to false positives when analysed. 455 | analyse-fallback-blocks=no 456 | 457 | # Deprecated modules which should not be used, separated by a comma. 458 | deprecated-modules=optparse,tkinter.tix 459 | 460 | # Create a graph of external dependencies in the given file (report RP0402 must 461 | # not be disabled). 462 | ext-import-graph= 463 | 464 | # Create a graph of every (i.e. internal and external) dependencies in the 465 | # given file (report RP0402 must not be disabled). 466 | import-graph= 467 | 468 | # Create a graph of internal dependencies in the given file (report RP0402 must 469 | # not be disabled). 470 | int-import-graph= 471 | 472 | # Force import order to recognize a module as part of the standard 473 | # compatibility libraries. 474 | known-standard-library= 475 | 476 | # Force import order to recognize a module as part of a third party library. 477 | known-third-party=enchant 478 | 479 | # Couples of modules and preferred modules, separated by a comma. 480 | preferred-modules= 481 | 482 | 483 | [CLASSES] 484 | 485 | # List of method names used to declare (i.e. assign) instance attributes. 486 | defining-attr-methods=__init__, 487 | __new__, 488 | setUp, 489 | __post_init__ 490 | 491 | # List of member names, which should be excluded from the protected access 492 | # warning. 493 | exclude-protected=_asdict, 494 | _fields, 495 | _replace, 496 | _source, 497 | _make 498 | 499 | # List of valid names for the first argument in a class method. 500 | valid-classmethod-first-arg=cls 501 | 502 | # List of valid names for the first argument in a metaclass class method. 503 | valid-metaclass-classmethod-first-arg=cls 504 | 505 | 506 | [EXCEPTIONS] 507 | 508 | # Exceptions that will emit a warning when being caught. Defaults to 509 | # "BaseException, Exception". 510 | overgeneral-exceptions=BaseException, 511 | Exception 512 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright ~2009 - Charles Severance 2 | Reused 2017 - Jamison Lahman 3 | 4 | This work is licensed under a Creative Common Attribution-NonCommerical-ShareAlike 3.0 Unported License. This license is available at: 5 | https://creativecommons.org/licenses/by-nc-sa/3.0/ 6 | 7 | Commerical and non-commerical uses of the material are outline in the Appendix titled "Copyright Detail" of the book. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # python-for-everybody-solutions 2 | 3 | Course Link (Coursera): https://www.coursera.org/specializations/python 4 | 5 | Solutions to Python for Everybody: Exploring Data using Python 3 by Charles Severance: https://www.py4e.com/book. Only exercises requiring written code are included. Multiple choice and extended response questions have been omitted. 6 | The book's Github can be found at https://github.com/csev/py4e. 7 | For solutions using python 2.7, see: https://github.com/epequeno/python-for-informatics. 8 | -------------------------------------------------------------------------------- /exercise10_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 10.1: Revise a previous program as follows: Read and parse the "From" 4 | lines and pull out the addresses from the line. Count the number of messages 5 | from each person using a dictionary. 6 | 7 | After all the data has been read, print the person with the most commits by 8 | creating a list of (count, email) tuples from the dictionary. Then sort the 9 | list in the reverse order and print out the person who has the most commits. 10 | 11 | Sample line: 12 | From stephen.marquard@uct.ac.az Sat Jan 05 09:14:16 2008 13 | 14 | Enter a file name: mbox-short.txt 15 | cwen@iupui.edu 5 16 | 17 | Enter a file name: mbox.txt 18 | zqian@umich.edu 195 19 | 20 | Python for Everybody: Exploring Data Using Python 3 21 | by Charles R. Severance 22 | """ 23 | 24 | 25 | dictionary_addresses = dict() # Initialize variables 26 | lst = list() 27 | 28 | fname = input('Enter file name: ') 29 | try: 30 | fhand = open(fname) 31 | except FileNotFoundError: 32 | print('File cannot be opened:', fname) 33 | quit() 34 | 35 | for line in fhand: 36 | words = line.split() 37 | if len(words) < 2 or words[0] != 'From': 38 | continue 39 | else: 40 | if words[1] not in dictionary_addresses: 41 | dictionary_addresses[words[1]] = 1 # First entry 42 | else: 43 | dictionary_addresses[words[1]] += 1 # Additional counts 44 | 45 | for key, val in list(dictionary_addresses.items()): 46 | lst.append((val, key)) # Fills list with value, key of dict 47 | 48 | lst.sort(reverse=True) # Sorts by highest value 49 | 50 | for count, email in lst[:1]: # Only displays the largest value 51 | print(email, count) 52 | -------------------------------------------------------------------------------- /exercise10_2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 10.2: This program counts the distribution of the hour of the day 4 | for each of the messages. You can pull the hour from the "From" line by finding 5 | the time string and then splitting that string into parts using the colon 6 | character. Once you have accumulated the counts for each hour, print out the 7 | counts, one per line, sorted by hour as shown below. 8 | 9 | Sample line: From stephen.marquard@uct.ac.az Sat Jan 05 09:14:16 2008 10 | 11 | Sample Execution: 12 | 13 | python timeofday.py 14 | Enter a file name: mbox-short.txt 15 | 04 3 16 | 06 1 17 | 07 1 18 | 09 2 19 | 10 3 20 | 11 6 21 | 14 1 22 | 15 2 23 | 16 4 24 | 17 2 25 | 18 1 26 | 19 1 27 | 28 | Python for Everybody: Exploring Data Using Python 3 29 | by Charles R. Severance 30 | """ 31 | 32 | 33 | dictionary_hours = dict() # Initialize variables 34 | lst = list() 35 | 36 | fname = input('Enter file name: ') 37 | try: 38 | fhand = open(fname) 39 | except FileNotFoundError: 40 | print('File cannot be opened:', fname) 41 | quit() 42 | 43 | for line in fhand: 44 | words = line.split() 45 | if len(words) < 5 or words[0] != 'From': 46 | continue 47 | 48 | col_pos = words[5].find(':') 49 | hour = words[5][:col_pos] 50 | if hour not in dictionary_hours: 51 | dictionary_hours[hour] = 1 # First entry 52 | else: 53 | dictionary_hours[hour] += 1 # Additional counts 54 | 55 | for key, val in list(dictionary_hours.items()): 56 | lst.append((key, val)) # Fills list with hour, count of dict 57 | 58 | lst.sort() # Sorts by hour 59 | 60 | for key, val in lst: 61 | print(key, val) 62 | -------------------------------------------------------------------------------- /exercise10_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 10.3: Write a program that reads a file and prints the letters in 4 | decreasing order of frequency. Your program should convert all the input to 5 | lower case and only count the letters a-z. Your program should not count 6 | spaces, digits, punctuation, or anything other than letters a-z. Find text 7 | samples from several different languages and see how letter frequency varies 8 | between languages. Compare your results with the tables at 9 | wikipedia.org/wiki/Letter_frequencies 10 | 11 | Python for Everybody: Exploring Data Using Python 3 12 | by Charles R. Severance 13 | """ 14 | import string 15 | 16 | counts = 0 # Initialize variables 17 | dictionary_counts = dict() 18 | relative_lst = list() 19 | 20 | fname = input('Enter file name: ') 21 | try: 22 | fhand = open(fname) 23 | except FileNotFoundError: 24 | print('File cannot be opened:', fname) 25 | exit() 26 | 27 | for line in fhand: 28 | line = line.translate(str.maketrans('', '', string.digits)) 29 | line = line.translate(str.maketrans('', '', string.punctuation)) 30 | line = line.lower() 31 | 32 | # Removes numbers and punctuation then sets all letters to lower case 33 | words = line.split() 34 | for word in words: 35 | for letter in word: 36 | # Count each letter for relative frequencies 37 | counts += 1 38 | if letter not in dictionary_counts: 39 | dictionary_counts[letter] = 1 40 | else: 41 | dictionary_counts[letter] += 1 42 | 43 | for key, val in list(dictionary_counts.items()): 44 | relative_lst.append((val / counts, key)) # Computes the relative frequency 45 | 46 | relative_lst.sort(reverse=True) # Sorts from highest rel freq 47 | 48 | for key, val in relative_lst: 49 | print(key, val) 50 | -------------------------------------------------------------------------------- /exercise11_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 11.1: Write a simple program to simulate the operation of the grep 4 | command on Unix. Ask the user to enter a regular expression and count the 5 | number of lines that matched the regular expression: 6 | 7 | $ python grep.py 8 | Enter a regular expression: ^Author 9 | mbox.txt had 1798 lines that matched ^Author 10 | 11 | $ python grep.py 12 | Enter a regular expression: ^X- 13 | mbox.txt had 14368 lines that matched ^X- 14 | 15 | $ python grep.py 16 | Enter a regular expression: java$ 17 | mbox.txt had 4218 lines that matched java$ 18 | 19 | Python for Everybody: Exploring Data Using Python 3 20 | by Charles R. Severance 21 | """ 22 | import re 23 | 24 | count = 0 # Initialize variables 25 | 26 | input_exp = input('Enter a regular expression: ') 27 | reg_exp = str(input_exp) # Regular Expressions are strings 28 | fname = 'mbox.txt' 29 | fhand = open(fname) 30 | 31 | for line in fhand: 32 | line = line.rstrip() 33 | 34 | # Only counts if something was found 35 | if re.findall(reg_exp, line) != []: 36 | count += 1 37 | 38 | print(fname + ' had ' + str(count) + ' lines that matched ' + reg_exp) 39 | -------------------------------------------------------------------------------- /exercise11_2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 11.2: Write a program to look for lines of the form 4 | 5 | 'New Revision: 39771' 6 | 7 | and extract the number from each of the lines using a regular expression and 8 | the findall() method. Compute the average of the numbers and print out the 9 | average. 10 | 11 | Enter file:mbox.txt 12 | 38549.7949721 13 | 14 | Enter file:mbox-short.txt 15 | 39756.9259259 16 | 17 | Python for Everybody: Exploring Data Using Python 3 18 | by Charles R. Severance 19 | """ 20 | import re 21 | 22 | 23 | rev = [] 24 | rev_ave = 0 25 | 26 | fname = input('Enter file: ') 27 | try: 28 | fhand = open(fname) 29 | except FileNotFoundError: 30 | print('File cannot be opened: ', fname) 31 | exit() 32 | 33 | 34 | for line in fhand: 35 | line = line.rstrip() 36 | rev_temp = re.findall('^New Revision: ([0-9.]+)', line) 37 | for val in rev_temp: 38 | val = float(val) # Convert the strings to floats 39 | rev = rev + [val] # Combine all values 40 | 41 | rev_sum = sum(rev) 42 | count = float(len(rev)) 43 | if count: 44 | rev_ave = rev_sum / count 45 | print(rev_ave) 46 | -------------------------------------------------------------------------------- /exercise12_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 12.3: Use urllib to replicate the previous exercise of (1) retrieving 4 | the document from a URL, (2) displaying up to 3000 characters, and (3) counting 5 | the overall characters in the document. Don't worry about the headers for this 6 | exercise, simply show the first 3000 characters of the document contents. 7 | 8 | Python for Everybody: Exploring Data Using Python 3 9 | by Charles R. Severance 10 | """ 11 | import urllib.request 12 | 13 | 14 | fhand = urllib.request.urlopen('http://data.pr4e.org/romeo.txt') 15 | chars = 0 16 | char_limit = 3000 17 | for line in fhand: 18 | # \n is considered a character; this follow commands like wc. 19 | # Change the following to line.decode().rstrip('\n') if desired 20 | line = line.decode() 21 | next_count = chars + len(line) 22 | if next_count <= char_limit: 23 | print(line.rstrip('\n')) 24 | elif chars < char_limit: 25 | char_remain = char_limit - chars - 1 26 | print(line[:char_remain]) 27 | chars = next_count 28 | print(chars) 29 | -------------------------------------------------------------------------------- /exercise12_4.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 12.4: Change the urllinks.py program to extract and count paragraph 4 | (p) tags from the retrieved HTML document and display the count of the 5 | paragraphs as the output of your program. Do not display the paragraph text, 6 | only count them. Test your program on several small pages as well as some 7 | larger web pages. 8 | 9 | Python for Everybody: Exploring Data Using Python 3 10 | by Charles R. Severance 11 | """ 12 | import urllib.request 13 | import urllib.parse 14 | import urllib.error 15 | import ssl 16 | from bs4 import BeautifulSoup 17 | 18 | 19 | count = 0 # Initialize variables 20 | # Ignore SSL certificate errors 21 | ctx = ssl.create_default_context() 22 | ctx.check_hostname = False 23 | ctx.verify_mode = ssl.CERT_NONE 24 | 25 | url = input('Enter - ') 26 | html = urllib.request.urlopen(url, context=ctx).read() 27 | soup = BeautifulSoup(html, 'html.parser') 28 | 29 | # Retrieve all of the anchor tags 30 | tags = soup('p') 31 | for tag in tags: 32 | count += 1 # Counter 33 | print(count) 34 | -------------------------------------------------------------------------------- /exercise12_5.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 12.5: (Advanced) Change the socket program so that it only shows 4 | data after the headers and a blank line have been received. Remember that 5 | recv is receiving characters (newlines and all), not lines. 6 | 7 | Python for Everybody: Exploring Data Using Python 3 8 | by Charles R. Severance 9 | """ 10 | import socket 11 | 12 | my_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 13 | my_sock.connect(('data.pr4e.org', 80)) 14 | cmd = 'GET http://data.pr4e.org/romeo.txt HTTP/1.0\r\n\r\n'.encode() 15 | my_sock.send(cmd) 16 | 17 | data = my_sock.recv(512) 18 | message = data.decode() 19 | header_end_pos = message.find('\r\n\r\n') + 4 # Finds the end of header 20 | # Adds four to exclude:'\r\n\r\n' 21 | print(message[header_end_pos:], end='') 22 | while True: # Header in the first data only 23 | data = my_sock.recv(512) 24 | if not data: 25 | break 26 | print(data.decode()) 27 | my_sock.close() 28 | -------------------------------------------------------------------------------- /exercise13_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 13.1: Change either the www.py4e.com/code3/geojson.py or 4 | www.py4e.com/code3/geoxml.py to print out the two-character country code from 5 | the retrieved data. Add error checking so you program does not traceback if 6 | the country code is not there. Once you have it working, search for "Atlantic 7 | Ocean" and make sure it can handle locations that are not in any country. 8 | 9 | Python for Everybody: Exploring Data Using Python 3 10 | by Charles R. Severance 11 | """ 12 | 13 | import urllib.request 14 | import urllib.parse 15 | import urllib.error 16 | import json 17 | 18 | # If you have a Google Places API key, enter it here 19 | # api_key = 'xxx' 20 | api_key = '' 21 | 22 | if not api_key: 23 | api_key = '42' 24 | serviceurl = 'http://py4e-data.dr-chuck.net/json?' 25 | else: 26 | serviceurl = 'http://maps.googleapis.com/maps/api/geocode/json?' 27 | 28 | while True: 29 | address = input('Enter location: ') 30 | if not address: 31 | break 32 | params = {'address': address, 'key': api_key} 33 | url = serviceurl + urllib.parse.urlencode(params) 34 | 35 | print('Retrieving', url) 36 | uh = urllib.request.urlopen(url) 37 | data = uh.read().decode() 38 | print('Retrieved', len(data), 'characters') 39 | 40 | try: 41 | js = json.loads(data) 42 | except BaseException: 43 | js = None 44 | 45 | if not js or 'status' not in js or js['status'] != 'OK': 46 | print('==== Failure To Retrieve ====') 47 | print(data) 48 | continue 49 | 50 | counter = -1 51 | info = js["results"][0]["address_components"] 52 | for item in info: 53 | counter += 1 54 | if js["results"][0]["address_components"][counter]["types"] == [ 55 | 'country', 'political']: 56 | print(js["results"][0]["address_components"][counter] 57 | ["short_name"]) 58 | break 59 | else: 60 | continue 61 | print("No country code") 62 | -------------------------------------------------------------------------------- /exercise13_2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 13.2: Write a program that will prompt to enter in a url, read the JSON data from that URL using 4 | urllib and then parse and extract the comment counts from the JSON data, 5 | compute the sum of the numbers in the file and enter the sum below. 6 | 7 | Python for Everybody: Exploring Data Using Python 3 8 | by Charles R. Severance 9 | """ 10 | import json 11 | import ssl 12 | import urllib.request 13 | import urllib.error 14 | import urllib.parse 15 | 16 | 17 | site = input('Enter URL: ') 18 | # Short circuit to default URL if none is entered 19 | site = site or 'http://py4e-data.dr-chuck.net/comments_42.json' 20 | 21 | # Ignore SSL certificate errors 22 | ctx = ssl.create_default_context() 23 | ctx.check_hostname = False 24 | ctx.verify_mode = ssl.CERT_NONE 25 | 26 | file_list = urllib.request.urlopen(site, context=ctx).read() 27 | 28 | json_list = json.loads(file_list) 29 | 30 | comments = json_list['comments'] 31 | 32 | total = 0 33 | for comment in comments: 34 | total += comment['count'] 35 | 36 | print(total) 37 | -------------------------------------------------------------------------------- /exercise3_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 3.1: Rewrite your pay computation to give the employee 1.5 times the 4 | rate for hours worked above 40 hours. 5 | 6 | Enter Hours: 45 7 | Enter Rate: 10 8 | Pay: 475.0 9 | 10 | Python for Everybody: Exploring Data Using Python 3 11 | by Charles R. Severance 12 | """ 13 | pay = 0.0 # Initialize variables 14 | 15 | input_hours = input('Enter Hours: ') 16 | input_rate = input('Enter Rate: ') 17 | hours = float(input_hours) # Only allows input floats 18 | rate = float(input_rate) # Only allows input floats 19 | 20 | if hours < 40: 21 | pay = rate * hours # No overtime calculation 22 | else: 23 | overtime = hours - 40 # Calculate amount of overtime 24 | pay = (rate * 40.0) + (1.5 * rate * overtime) 25 | 26 | print('Pay: ', pay) 27 | -------------------------------------------------------------------------------- /exercise3_2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 3.2: Rewrite your pay program using try and except so that your 4 | program handles non-numerical input gracefully by printing a message and 5 | exiting the program. The following shows two executions of the program: 6 | 7 | Enter Hours: 20 8 | Enter Rate : nine 9 | Error, please enter numeric input 10 | 11 | Enter Hours: forty 12 | Error, please enter numeric input 13 | 14 | Python for Everybody: Exploring Data Using Python 3 15 | by Charles R. Severance 16 | """ 17 | hours = 0.0 # Initialize variables 18 | rate = 0.0 19 | pay = 0.0 20 | 21 | input_hours = input('Enter Hours: ') 22 | try: 23 | hours = float(input_hours) # Only allows input floats 24 | except ValueError: 25 | print('Error, please enter numeric input') 26 | quit() 27 | 28 | input_rate = input('Enter Rate: ') 29 | try: 30 | rate = float(input_rate) # Only allows input floats 31 | except ValueError: 32 | print('Error, please enter numeric input') 33 | quit() 34 | 35 | if hours < 40: 36 | pay = rate * hours # No overtime calculation 37 | else: 38 | overtime = hours - 40 # Calculate amount of overtime 39 | pay = (rate * 40.0) + (1.5 * rate * overtime) 40 | 41 | print('Pay: ', pay) 42 | -------------------------------------------------------------------------------- /exercise3_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 3.Write a program to prompt for a score between 0.0 and 1.0. If the 4 | score is out of range, print an error message. If the score is between 0.0 and 5 | 1.0, print a grade using the following table: 6 | Score Grade 7 | >= 0.9 A 8 | >= 0.8 B 9 | >= 0.7 C 10 | >= 0.6 D 11 | < 0.6 F 12 | ~~~ 13 | 14 | Enter score: perfect 15 | Bad score 16 | 17 | Enter score: 10.0 18 | Bad score 19 | 20 | Enter score: 0.75 21 | C 22 | 23 | Enter score: 0.5 24 | F 25 | 26 | Run the program repeatedly as shown above to test the various, different 27 | values for input. 28 | 29 | Python for Everybody: Exploring Data Using Python 3 30 | by Charles R. Severance 31 | """ 32 | score = 0.0 # Initialize variables 33 | grade = "" 34 | 35 | input1 = input('Enter score: ') 36 | try: 37 | score = float(input1) # Only allows input floats 38 | except ValueError: 39 | print('Bad score') 40 | quit() 41 | 42 | if 0.0 <= score <= 1.0: # Scores must be between 0.0 and 1.0 43 | if score >= 0.9: 44 | grade = 'A' 45 | elif score >= 0.8: 46 | grade = 'B' 47 | elif score >= 0.7: 48 | grade = 'C' 49 | elif score >= 0.6: 50 | grade = 'D' 51 | else: 52 | grade = 'F' 53 | else: 54 | grade = 'Bad score' 55 | 56 | print(grade) 57 | -------------------------------------------------------------------------------- /exercise4_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 4.1: Run the program on your system and see what numbers you get. 4 | Run the program more than once and see what numbers you get. 5 | 6 | Python for Everybody: Exploring Data Using Python 3 7 | by Charles R. Severance 8 | """ 9 | 10 | import random 11 | 12 | for i in range(10): 13 | x = random.random() 14 | print(x) 15 | 16 | """ 17 | Run 1: 18 | 0.21764319507444463 19 | 0.8329991443974214 20 | 0.5701549669913151 21 | 0.8637443412384684 22 | 0.2047094119147722 23 | 0.3202386315168375 24 | 0.9782522613350779 25 | 0.9220494004895224 26 | 0.17966209998031546 27 | 0.7983521239029091 28 | 29 | Run 2: 30 | 0.47116913276761185 31 | 0.49784628316541546 32 | 0.7292518476972524 33 | 0.2355420735182987 34 | 0.16876377822830468 35 | 0.6365600615263461 36 | 0.1689585397335408 37 | 0.41161696529382463 38 | 0.9895980083921391 39 | 0.23023688059069947 40 | """ 41 | -------------------------------------------------------------------------------- /exercise4_2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 4.2 Move the last line of this program to the top, so the function 4 | call appears before the definitions. Run the program and see what error 5 | message you get. 6 | 7 | Code: http://www.py4e.com/code3/lyrics.py 8 | 9 | Python for Everybody: Exploring Data Using Python 3 10 | by Charles R. Severance 11 | """ 12 | 13 | repeat_lyrics() 14 | 15 | 16 | def repeat_lyrics(): 17 | print_lyrics() 18 | print_lyrics() 19 | 20 | 21 | def print_lyrics(): 22 | print("I'm a lumberjack, and I'm okay.") 23 | print('I sleep all night and I work all day.') 24 | 25 | 26 | """ 27 | Error message: 28 | Traceback (most recent call last): 29 | File "/home/jamison/workspace/python-for-everybody/exercise4_2.py", line 14, in 30 | repeat_lyrics() 31 | NameError: name 'repeat_lyrics' is not defined 32 | """ 33 | -------------------------------------------------------------------------------- /exercise4_6.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 4.6: Rewrite your pay computation with time-and-a-half for overtime 4 | and create a function called computepay which takes two paramteters (hours and 5 | rate). 6 | 7 | Enter Hours: 45 8 | Enter Rate: 10 9 | Pay: 475.0 10 | 11 | Python for Everybody: Exploring Data Using Python 3 12 | by Charles R. Severance 13 | """ 14 | 15 | 16 | def computepay(tmp_hours, tmp_rate): 17 | """ 18 | Calculates the amount to pay taking into account overtime 19 | Inputs: tmp_hours -- the total hours worked 20 | tmp_rate -- pay rate of the employee 21 | Output: amount due to employee 22 | """ 23 | if tmp_hours <= 40.0: 24 | return tmp_rate * tmp_hours # No overtime calculation 25 | 26 | # Since the value is returned if hours <= 40, we no longer need the 27 | # else statement here. 28 | overtime = tmp_hours - 40.0 # How much overtime is left 29 | return (tmp_rate * 40.0) + (1.5 * tmp_rate * overtime) 30 | 31 | 32 | def check_for_float(input1): 33 | """ 34 | Checks if the type of "input1" is a float and returns the value if so. 35 | Input: input1 -- variable to check 36 | Output: val -- value of float 37 | """ 38 | try: 39 | val = float(input1) # Only allows input floats 40 | return val 41 | except ValueError: 42 | print('Error, please enter numeric input') 43 | quit() 44 | 45 | 46 | input_hours = input('Enter Hours: ') 47 | hours = check_for_float(input_hours) 48 | 49 | input_rate = input('Enter Rate: ') 50 | rate = check_for_float(input_rate) 51 | 52 | pay = computepay(hours, rate) 53 | print('Pay: ', pay) 54 | -------------------------------------------------------------------------------- /exercise4_7.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 4.7: Rewrite the grade program from previous chapter using a function 4 | called computegrade that takes a score as its parameter and returns a grade as 5 | a string. 6 | 7 | Score Grade 8 | >= 0.9 A 9 | >= 0.8 B 10 | >= 0.7 C 11 | >= 0.6 D 12 | < 0.6 F 13 | ~~~ 14 | 15 | Enter score: 0.95 16 | A 17 | 18 | Enter score: perfect 19 | Bad score 20 | 21 | Enter score: 10.0 22 | Bad score 23 | 24 | Enter score: 0.75 25 | C 26 | 27 | Enter score: 0.5 28 | F 29 | 30 | Run the program repeatedly to test the various, different values for input. 31 | 32 | Python for Everybody: Exploring Data Using Python 3 33 | by Charles R. Severance 34 | """ 35 | 36 | 37 | def computegrade(tmp_score): 38 | """ 39 | Computes the final grade based on a 0.0 to 1.0 scale. If the score is 40 | not between 0.0 and 1.0, returns "Bad score." 41 | Input: score -- score (must be between 0.0 and 1.0) 42 | Output: returns a grade as a string. 43 | """ 44 | if 0.0 <= tmp_score <= 1.0: 45 | if tmp_score >= 0.9: 46 | return 'A' 47 | if tmp_score >= 0.8: 48 | return 'B' 49 | if tmp_score >= 0.7: 50 | return 'C' 51 | if tmp_score >= 0.6: 52 | return 'D' 53 | return 'F' 54 | # Case 'score' is not on the interval 55 | return 'Bad score' 56 | 57 | 58 | input_score = input('Enter score: ') 59 | score = 0.0 60 | 61 | try: 62 | score = float(input_score) # Only allows input floats 63 | except ValueError: 64 | print('Bad score') 65 | quit() 66 | 67 | grade = computegrade(score) 68 | print(grade) 69 | -------------------------------------------------------------------------------- /exercise5_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 5.1: Write a program which repeatedly reads numbers until the user 4 | enters "done". Once "done" is entered, print out the total, count, and average 5 | of the numbers. If the user enters anything other than a number, detect their 6 | mistake using try and except and print an error message and skip to the next 7 | number. 8 | 9 | Enter a number: 4 10 | Enter a number: 5 11 | Enter a number: bad data 12 | Invalid input 13 | Enter a number: 7 14 | Enter a number: done 15 | 16 3 5.33333333333333 16 | 17 | Python for Everybody: Exploring Data Using Python 3 18 | by Charles R. Severance 19 | """ 20 | 21 | 22 | def check_for_float(input1, exit = True): 23 | """ 24 | Checks if the type of "input1" is a float and returns the value if so. 25 | Input: input1 -- variable to check 26 | Output: val -- value of float 27 | """ 28 | try: 29 | val = float(input1) # Only allows input floats 30 | return val 31 | except (ValueError, TypeError): 32 | print('Error, please enter numeric input') 33 | if exit: 34 | quit() 35 | return False 36 | 37 | 38 | # Check module name since check_for_float is being imported in the next 39 | # exercise. See also, https://www.youtube.com/watch?v=sugvnHA7ElY (video) 40 | # or https://www.tutorialspoint.com/python/python_modules.htm (text) 41 | if __name__ == "__main__": 42 | count = 0 # Initializes values 43 | total = 0.0 44 | average = 0.0 45 | 46 | while True: # Stays in loop until break 47 | input_number = input('Enter a number: ') 48 | if input_number == 'done': 49 | break # Exits the while loop 50 | 51 | number = check_for_float(input_number, False) 52 | if not number: 53 | continue 54 | 55 | count += 1 # Counter 56 | total = total + number # Running total 57 | 58 | # Ensures count is not 0 which would cause division error 59 | if count: 60 | average = total / count # Computes the average 61 | 62 | print(total, count, average) 63 | -------------------------------------------------------------------------------- /exercise5_2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 5.1: Write another program that prompts for a list of numbers as 4 | above and at the end prints out both the maximum and minimum of the numbers 5 | instead of the average. 6 | 7 | Python for Everybody: Exploring Data Using Python 3 8 | by Charles R. Severance 9 | """ 10 | from exercise5_1 import check_for_float 11 | 12 | # Handles the special case for the first input 13 | input1 = input('Enter a number: ') 14 | if input1 == 'done': 15 | quit() # Exits if no input 16 | 17 | number = check_for_float(input1) # Ensure input is a float 18 | 19 | smallest = number 20 | largest = number 21 | 22 | while True: # Stays in loop until break 23 | input1 = input('Enter a number: ') 24 | if input1 == 'done': 25 | break # Exits loop 26 | 27 | number = check_for_float(input1) # Ensure input is a float 28 | 29 | if number > largest: # Condition for maximum 30 | largest = number 31 | if number < smallest: # Condition for minimum 32 | smallest = number 33 | 34 | print('Largest:', largest) 35 | print('Smallest:', smallest) 36 | -------------------------------------------------------------------------------- /exercise6_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 6.1: Write a while loop that starts at the last character in the 4 | string and works its way backwards to the first character in the string, 5 | printing each letter on a separate line, except backwards. 6 | 7 | Python for Everybody: Exploring Data Using Python 3 8 | by Charles R. Severance 9 | """ 10 | 11 | fruit = 'banana' 12 | index = len(fruit) - 1 # Convert to index 13 | while index >= 0: 14 | letter = fruit[index] 15 | print(letter) 16 | index -= 1 # Update index 17 | -------------------------------------------------------------------------------- /exercise6_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 6.3: Encapsulate this code in a function named count, and generalize 4 | it so that it accepts the string and the letter as arguments. 5 | 6 | Python for Everybody: Exploring Data Using Python 3 7 | by Charles R. Severance 8 | """ 9 | 10 | 11 | def count(word, letter): 12 | """" 13 | Counts the number of times a given letter appears in a word 14 | Input: word -- the word in question 15 | letter -- the letter in the word to count 16 | Output:prints the number of letters 17 | """ 18 | counter = 0 19 | 20 | for character in word: 21 | if character == letter: 22 | counter = counter + 1 23 | print(counter) 24 | 25 | 26 | input_word = input('Enter the word: ') 27 | input_letter = input('Enter the letter: ') 28 | count(input_word, input_letter) 29 | -------------------------------------------------------------------------------- /exercise6_5.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 6.5: Take the following Python code that stores a string: 4 | 5 | string = 'X-DSPAM-Confidence:0.8475' 6 | 7 | Use find and string slicing to extract the portion of the string after the 8 | colon character and then use the float function to convert the extraced string 9 | into a floating number. 10 | 11 | Python for Everybody: Exploring Data Using Python 3 12 | by Charles R. Severance 13 | """ 14 | string = 'X-DSPAM-Confidence: 0.8475' 15 | 16 | col_pos = string.find(':') # Finds the colon character 17 | number = string[col_pos + 1:] # Extracts portion after colon 18 | confidence = float(number) # Converts to floating point number 19 | print(confidence) 20 | -------------------------------------------------------------------------------- /exercise7_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 7.1: Write a program to read through a file and print the contents 4 | of the file (line by line) all in upper case. Executing the program will look 5 | as follows: 6 | 7 | python shout.py 8 | enter a file name: mbox.short.txt 9 | FROM STEPHEN.MARQUARD@UTC.AC.ZA SAT JAN 5 09:14:16 2008 10 | RETURN-PATH: 11 | RECEIVED: FROM MURDER (MAIL.UMICH.EDU [141.211.14.90]) 12 | BY FRANKENSTEIN.MAIL.UMICH.EDU (CYRUS V2.3.8) WITH LMTPA; 13 | SAT, 05 JAN 2008 09:14:16 -0500 14 | 15 | You can download the file from 16 | www.py4e.com/code3/mbox-short.txt 17 | 18 | Python for Everybody: Exploring Data Using Python 3 19 | by Charles R. Severance 20 | """ 21 | 22 | # If in a unix-like environment, you can download mbox-short.txt with the 23 | # following command, 24 | # $ curl -O https://www.py4e.com/code3/mbox-short.txt 25 | fhand = open('mbox-short.txt') 26 | for line in fhand: # Handles one line at a time 27 | shout = line.rstrip().upper() # Removes newline and capitalizes 28 | print(shout) 29 | -------------------------------------------------------------------------------- /exercise7_2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 7.2: Write a program to prompt for a file name, and then read 4 | through the file and look for lines of the form: 5 | 6 | X-DSPAM-Confidence:0.8475 7 | 8 | When you encounter a line that starts with "X-DSPAM-Confidence:" pull apart 9 | the line to extract the floating-point number on the line. count these lines 10 | and then compute the total of the spam confidence values from these lines. 11 | When you reach the end of the file, print out the average spam confidence. 12 | 13 | Enter the file name: mbox.txt 14 | Average spam confidence: 0.894128046745 15 | 16 | Enter the file name: mbox-short.txt 17 | Average spam confidence: 0.750718518519 18 | 19 | Test your file on the mbox.txt and mbox-short.txt files. 20 | 21 | Python for Everybody: Exploring Data Using Python 3 22 | by Charles R. Severance 23 | """ 24 | count = 0 # Initialize variables 25 | total = 0 26 | 27 | fname = input('Enter the file name: ') 28 | try: 29 | fhand = open(fname) 30 | except FileNotFoundError: 31 | print('File cannot be opened: ', fname) 32 | quit() 33 | 34 | for line in fhand: 35 | if line.startswith('X-DSPAM-Confidence: '): 36 | count = count + 1 37 | colpos = line.find(':') 38 | number = line[colpos + 1:].strip() # Removes all text except number 39 | SPAM_C = float(number) 40 | total = total + SPAM_C 41 | 42 | average = total / count 43 | print('Average spam confidence: ', average) 44 | -------------------------------------------------------------------------------- /exercise7_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 7.3: Sometimes when programmers get bored or want to have a bit of 4 | fun, they adda harmless Easter Egg to their program. Modify the program that 5 | prompts the user for a file name so that is prints a funny message when 6 | the user types in the exact file name "na na boo boo". The program should 7 | behave normally for all other files which exist and don't exit. Here is a 8 | sample execution of the program: 9 | 10 | python egg.py 11 | Enter the file name: mbox.txt 12 | There were 1797 subject lines in mbox.txt 13 | 14 | python egg.py 15 | Enter the file name: missing.txt 16 | File cannot be opened: missing.txt 17 | 18 | python egg.py 19 | Enter the file name: na na boo boo 20 | NA NA BOO BOO TO YOU - You have been punk'd! 21 | 22 | Python for Everybody: Exploring Data Using Python 3 23 | by Charles R. Severance 24 | """ 25 | 26 | fname = input('Enter the file name: ') 27 | try: 28 | if fname == 'na na boo boo': 29 | print('NA NA BOO BOO TO YOU - You have been punk\'d!') 30 | exit() 31 | fhand = open(fname) 32 | except FileNotFoundError: 33 | print('File cannot be opened:', fname) 34 | exit() 35 | 36 | count = 0 37 | for line in fhand: 38 | if line.startswith('Subject:'): 39 | count += 1 40 | 41 | print('There were', count, 'subject lines in', fname) 42 | -------------------------------------------------------------------------------- /exercise8_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # pylint: disable=assignment-from-no-return 3 | """ 4 | Exercise 8.1: Write a function called chop that takes a list and modifies it, 5 | removing the first and last elements, and returns None. 6 | 7 | Then write a function called middle that takes a list and returns a new list 8 | that contains all but the first and last elements. 9 | 10 | Python for Everybody: Exploring Data Using Python 3 11 | by Charles R. Severance 12 | """ 13 | 14 | 15 | def chop(lst): 16 | """ 17 | Takes a list, modifies it, removing the first and last elements, and 18 | returns None. 19 | Input: lst -- a list 20 | Output: None 21 | """ 22 | del lst[0] # Removes the first element 23 | del lst[-1] # Removes the last element 24 | 25 | 26 | def middle(lst): 27 | """ 28 | Takes a list and returns a new list that contains all but the first and 29 | last elements. 30 | Input: lst -- a list 31 | Output: new -- new list with first and last elements removed 32 | """ 33 | new = lst[1:] # Stores all but the first element 34 | del new[-1] # Deletes the last element 35 | return new 36 | 37 | 38 | my_list = [1, 2, 3, 4] 39 | my_list2 = [1, 2, 3, 4] 40 | 41 | chop_list = chop(my_list) 42 | print(my_list) # Should be [2,3] 43 | print(chop_list) # Should be None 44 | 45 | middle_list = middle(my_list2) 46 | print(my_list2) # Should be unchanged 47 | print(middle_list) # Should be [2,3] 48 | -------------------------------------------------------------------------------- /exercise8_2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 8.2: Figure out which line of the above program is still not properly 4 | guarded. See if you can construct a text file which causes the program to fail 5 | and then modify the program so that the line is properly guarded and test it to 6 | make sure it handles your new text file. 7 | 8 | Python for Everybody: Exploring Data Using Python 3 9 | by Charles R. Severance 10 | """ 11 | 12 | 13 | fhand = open('exercise8_2.txt') 14 | for line in fhand: 15 | words = line.split() 16 | 17 | if len(words) < 3: 18 | continue 19 | if words[0] != 'From': 20 | continue 21 | print(words[2]) 22 | -------------------------------------------------------------------------------- /exercise8_2.txt: -------------------------------------------------------------------------------- 1 | From 2 | Return-Path: 3 | Received: from murder (mail.umich.edu [141.211.14.90]) 4 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 5 | Sat, 05 Jan 2008 09:14:16 -0500 6 | X-Sieve: CMU Sieve 2.3 7 | Received: from murder ([unix socket]) 8 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 9 | Sat, 05 Jan 2008 09:14:16 -0500 10 | Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79]) 11 | by flawless.mail.umich.edu () with ESMTP id m05EEFR1013674; 12 | Sat, 5 Jan 2008 09:14:15 -0500 13 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 14 | BY holes.mr.itd.umich.edu ID 477F90B0.2DB2F.12494 ; 15 | 5 Jan 2008 09:14:10 -0500 16 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 17 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 5F919BC2F2; 18 | Sat, 5 Jan 2008 14:10:05 +0000 (GMT) 19 | Message-ID: <200801051412.m05ECIaH010327@nakamura.uits.iupui.edu> 20 | Mime-Version: 1.0 21 | Content-Transfer-Encoding: 7bit 22 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 23 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 899 24 | for ; 25 | Sat, 5 Jan 2008 14:09:50 +0000 (GMT) 26 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 27 | by shmi.uhi.ac.uk (Postfix) with ESMTP id A215243002 28 | for ; Sat, 5 Jan 2008 14:13:33 +0000 (GMT) 29 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 30 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m05ECJVp010329 31 | for ; Sat, 5 Jan 2008 09:12:19 -0500 32 | Received: (from apache@localhost) 33 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m05ECIaH010327 34 | for source@collab.sakaiproject.org; Sat, 5 Jan 2008 09:12:18 -0500 35 | Date: Sat, 5 Jan 2008 09:12:18 -0500 36 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to stephen.marquard@uct.ac.za using -f 37 | To: source@collab.sakaiproject.org 38 | From: stephen.marquard@uct.ac.za 39 | Subject: [sakai] svn commit: r39772 - content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl 40 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 41 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 42 | Content-Type: text/plain; charset=UTF-8 43 | X-DSPAM-Result: Innocent 44 | X-DSPAM-Processed: Sat Jan 5 09:14:16 2008 45 | X-DSPAM-Confidence: 0.8475 46 | X-DSPAM-Probability: 0.0000 47 | 48 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772 49 | 50 | Author: stephen.marquard@uct.ac.za 51 | Date: 2008-01-05 09:12:07 -0500 (Sat, 05 Jan 2008) 52 | New Revision: 39772 53 | 54 | Modified: 55 | content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl/ContentServiceSqlOracle.java 56 | content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl/DbContentService.java 57 | Log: 58 | SAK-12501 merge to 2-5-x: r39622, r39624:5, r39632:3 (resolve conflict from differing linebreaks for r39622) 59 | 60 | ---------------------- 61 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 62 | You can modify how you receive notifications at My Workspace > Preferences. 63 | 64 | 65 | 66 | From louis@media.berkeley.edu Fri Jan 4 18:10:48 2008 67 | Return-Path: 68 | Received: from murder (mail.umich.edu [141.211.14.97]) 69 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 70 | Fri, 04 Jan 2008 18:10:48 -0500 71 | X-Sieve: CMU Sieve 2.3 72 | Received: from murder ([unix socket]) 73 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 74 | Fri, 04 Jan 2008 18:10:48 -0500 75 | Received: from icestorm.mr.itd.umich.edu (icestorm.mr.itd.umich.edu [141.211.93.149]) 76 | by sleepers.mail.umich.edu () with ESMTP id m04NAbGa029441; 77 | Fri, 4 Jan 2008 18:10:37 -0500 78 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 79 | BY icestorm.mr.itd.umich.edu ID 477EBCE3.161BB.4320 ; 80 | 4 Jan 2008 18:10:31 -0500 81 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 82 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 07969BB706; 83 | Fri, 4 Jan 2008 23:10:33 +0000 (GMT) 84 | Message-ID: <200801042308.m04N8v6O008125@nakamura.uits.iupui.edu> 85 | Mime-Version: 1.0 86 | Content-Transfer-Encoding: 7bit 87 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 88 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 710 89 | for ; 90 | Fri, 4 Jan 2008 23:10:10 +0000 (GMT) 91 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 92 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 4BA2F42F57 93 | for ; Fri, 4 Jan 2008 23:10:10 +0000 (GMT) 94 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 95 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04N8vHG008127 96 | for ; Fri, 4 Jan 2008 18:08:57 -0500 97 | Received: (from apache@localhost) 98 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04N8v6O008125 99 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 18:08:57 -0500 100 | Date: Fri, 4 Jan 2008 18:08:57 -0500 101 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to louis@media.berkeley.edu using -f 102 | To: source@collab.sakaiproject.org 103 | From: louis@media.berkeley.edu 104 | Subject: [sakai] svn commit: r39771 - in bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src: bundle java/org/sakaiproject/site/tool 105 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 106 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 107 | Content-Type: text/plain; charset=UTF-8 108 | X-DSPAM-Result: Innocent 109 | X-DSPAM-Processed: Fri Jan 4 18:10:48 2008 110 | X-DSPAM-Confidence: 0.6178 111 | X-DSPAM-Probability: 0.0000 112 | 113 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39771 114 | 115 | Author: louis@media.berkeley.edu 116 | Date: 2008-01-04 18:08:50 -0500 (Fri, 04 Jan 2008) 117 | New Revision: 39771 118 | 119 | Modified: 120 | bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/bundle/sitesetupgeneric.properties 121 | bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java 122 | Log: 123 | BSP-1415 New (Guest) user Notification 124 | 125 | ---------------------- 126 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 127 | You can modify how you receive notifications at My Workspace > Preferences. 128 | 129 | 130 | 131 | From zqian@umich.edu Fri Jan 4 16:10:39 2008 132 | Return-Path: 133 | Received: from murder (mail.umich.edu [141.211.14.25]) 134 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 135 | Fri, 04 Jan 2008 16:10:39 -0500 136 | X-Sieve: CMU Sieve 2.3 137 | Received: from murder ([unix socket]) 138 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 139 | Fri, 04 Jan 2008 16:10:39 -0500 140 | Received: from ghostbusters.mr.itd.umich.edu (ghostbusters.mr.itd.umich.edu [141.211.93.144]) 141 | by panther.mail.umich.edu () with ESMTP id m04LAcZw014275; 142 | Fri, 4 Jan 2008 16:10:38 -0500 143 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 144 | BY ghostbusters.mr.itd.umich.edu ID 477EA0C6.A0214.25480 ; 145 | 4 Jan 2008 16:10:33 -0500 146 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 147 | by paploo.uhi.ac.uk (Postfix) with ESMTP id C48CDBB490; 148 | Fri, 4 Jan 2008 21:10:31 +0000 (GMT) 149 | Message-ID: <200801042109.m04L92hb007923@nakamura.uits.iupui.edu> 150 | Mime-Version: 1.0 151 | Content-Transfer-Encoding: 7bit 152 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 153 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 906 154 | for ; 155 | Fri, 4 Jan 2008 21:10:18 +0000 (GMT) 156 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 157 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 7D13042F71 158 | for ; Fri, 4 Jan 2008 21:10:14 +0000 (GMT) 159 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 160 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04L927E007925 161 | for ; Fri, 4 Jan 2008 16:09:02 -0500 162 | Received: (from apache@localhost) 163 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04L92hb007923 164 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 16:09:02 -0500 165 | Date: Fri, 4 Jan 2008 16:09:02 -0500 166 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f 167 | To: source@collab.sakaiproject.org 168 | From: zqian@umich.edu 169 | Subject: [sakai] svn commit: r39770 - site-manage/branches/sakai_2-5-x/site-manage-tool/tool/src/webapp/vm/sitesetup 170 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 171 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 172 | Content-Type: text/plain; charset=UTF-8 173 | X-DSPAM-Result: Innocent 174 | X-DSPAM-Processed: Fri Jan 4 16:10:39 2008 175 | X-DSPAM-Confidence: 0.6961 176 | X-DSPAM-Probability: 0.0000 177 | 178 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39770 179 | 180 | Author: zqian@umich.edu 181 | Date: 2008-01-04 16:09:01 -0500 (Fri, 04 Jan 2008) 182 | New Revision: 39770 183 | 184 | Modified: 185 | site-manage/branches/sakai_2-5-x/site-manage-tool/tool/src/webapp/vm/sitesetup/chef_site-siteInfo-list.vm 186 | Log: 187 | merge fix to SAK-9996 into 2-5-x branch: svn merge -r 39687:39688 https://source.sakaiproject.org/svn/site-manage/trunk/ 188 | 189 | ---------------------- 190 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 191 | You can modify how you receive notifications at My Workspace > Preferences. 192 | 193 | 194 | 195 | From rjlowe@iupui.edu Fri Jan 4 15:46:24 2008 196 | Return-Path: 197 | Received: from murder (mail.umich.edu [141.211.14.25]) 198 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 199 | Fri, 04 Jan 2008 15:46:24 -0500 200 | X-Sieve: CMU Sieve 2.3 201 | Received: from murder ([unix socket]) 202 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 203 | Fri, 04 Jan 2008 15:46:24 -0500 204 | Received: from dreamcatcher.mr.itd.umich.edu (dreamcatcher.mr.itd.umich.edu [141.211.14.43]) 205 | by panther.mail.umich.edu () with ESMTP id m04KkNbx032077; 206 | Fri, 4 Jan 2008 15:46:23 -0500 207 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 208 | BY dreamcatcher.mr.itd.umich.edu ID 477E9B13.2F3BC.22965 ; 209 | 4 Jan 2008 15:46:13 -0500 210 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 211 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 4AE03BB552; 212 | Fri, 4 Jan 2008 20:46:13 +0000 (GMT) 213 | Message-ID: <200801042044.m04Kiem3007881@nakamura.uits.iupui.edu> 214 | Mime-Version: 1.0 215 | Content-Transfer-Encoding: 7bit 216 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 217 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 38 218 | for ; 219 | Fri, 4 Jan 2008 20:45:56 +0000 (GMT) 220 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 221 | by shmi.uhi.ac.uk (Postfix) with ESMTP id A55D242F57 222 | for ; Fri, 4 Jan 2008 20:45:52 +0000 (GMT) 223 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 224 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04KieqE007883 225 | for ; Fri, 4 Jan 2008 15:44:40 -0500 226 | Received: (from apache@localhost) 227 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04Kiem3007881 228 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 15:44:40 -0500 229 | Date: Fri, 4 Jan 2008 15:44:40 -0500 230 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to rjlowe@iupui.edu using -f 231 | To: source@collab.sakaiproject.org 232 | From: rjlowe@iupui.edu 233 | Subject: [sakai] svn commit: r39769 - in gradebook/trunk/app/ui/src: java/org/sakaiproject/tool/gradebook/ui/helpers/beans java/org/sakaiproject/tool/gradebook/ui/helpers/producers webapp/WEB-INF webapp/WEB-INF/bundle 234 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 235 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 236 | Content-Type: text/plain; charset=UTF-8 237 | X-DSPAM-Result: Innocent 238 | X-DSPAM-Processed: Fri Jan 4 15:46:24 2008 239 | X-DSPAM-Confidence: 0.7565 240 | X-DSPAM-Probability: 0.0000 241 | 242 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39769 243 | 244 | Author: rjlowe@iupui.edu 245 | Date: 2008-01-04 15:44:39 -0500 (Fri, 04 Jan 2008) 246 | New Revision: 39769 247 | 248 | Modified: 249 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans/AssignmentGradeRecordBean.java 250 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/producers/GradeGradebookItemProducer.java 251 | gradebook/trunk/app/ui/src/webapp/WEB-INF/applicationContext.xml 252 | gradebook/trunk/app/ui/src/webapp/WEB-INF/bundle/messages.properties 253 | gradebook/trunk/app/ui/src/webapp/WEB-INF/requestContext.xml 254 | Log: 255 | SAK-12180 - Fixed errors with grading helper 256 | 257 | ---------------------- 258 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 259 | You can modify how you receive notifications at My Workspace > Preferences. 260 | 261 | 262 | 263 | From zqian@umich.edu Fri Jan 4 15:03:18 2008 264 | Return-Path: 265 | Received: from murder (mail.umich.edu [141.211.14.46]) 266 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 267 | Fri, 04 Jan 2008 15:03:18 -0500 268 | X-Sieve: CMU Sieve 2.3 269 | Received: from murder ([unix socket]) 270 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 271 | Fri, 04 Jan 2008 15:03:18 -0500 272 | Received: from firestarter.mr.itd.umich.edu (firestarter.mr.itd.umich.edu [141.211.14.83]) 273 | by fan.mail.umich.edu () with ESMTP id m04K3HGF006563; 274 | Fri, 4 Jan 2008 15:03:17 -0500 275 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 276 | BY firestarter.mr.itd.umich.edu ID 477E9100.8F7F4.1590 ; 277 | 4 Jan 2008 15:03:15 -0500 278 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 279 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 57770BB477; 280 | Fri, 4 Jan 2008 20:03:09 +0000 (GMT) 281 | Message-ID: <200801042001.m04K1cO0007738@nakamura.uits.iupui.edu> 282 | Mime-Version: 1.0 283 | Content-Transfer-Encoding: 7bit 284 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 285 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 622 286 | for ; 287 | Fri, 4 Jan 2008 20:02:46 +0000 (GMT) 288 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 289 | by shmi.uhi.ac.uk (Postfix) with ESMTP id AB4D042F4D 290 | for ; Fri, 4 Jan 2008 20:02:50 +0000 (GMT) 291 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 292 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04K1cXv007740 293 | for ; Fri, 4 Jan 2008 15:01:38 -0500 294 | Received: (from apache@localhost) 295 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04K1cO0007738 296 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 15:01:38 -0500 297 | Date: Fri, 4 Jan 2008 15:01:38 -0500 298 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f 299 | To: source@collab.sakaiproject.org 300 | From: zqian@umich.edu 301 | Subject: [sakai] svn commit: r39766 - site-manage/branches/sakai_2-4-x/site-manage-tool/tool/src/java/org/sakaiproject/site/tool 302 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 303 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 304 | Content-Type: text/plain; charset=UTF-8 305 | X-DSPAM-Result: Innocent 306 | X-DSPAM-Processed: Fri Jan 4 15:03:18 2008 307 | X-DSPAM-Confidence: 0.7626 308 | X-DSPAM-Probability: 0.0000 309 | 310 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39766 311 | 312 | Author: zqian@umich.edu 313 | Date: 2008-01-04 15:01:37 -0500 (Fri, 04 Jan 2008) 314 | New Revision: 39766 315 | 316 | Modified: 317 | site-manage/branches/sakai_2-4-x/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java 318 | Log: 319 | merge fix to SAK-10788 into site-manage 2.4.x branch: 320 | 321 | Sakai Source Repository #38024 Wed Nov 07 14:54:46 MST 2007 zqian@umich.edu Fix to SAK-10788: If a provided id in a couse site is fake or doesn't provide any user information, Site Info appears to be like project site with empty participant list 322 | 323 | Watch for enrollments object being null and concatenate provider ids when there are more than one. 324 | Files Changed 325 | MODIFY /site-manage/trunk/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java 326 | 327 | 328 | 329 | 330 | ---------------------- 331 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 332 | You can modify how you receive notifications at My Workspace > Preferences. 333 | 334 | 335 | 336 | From rjlowe@iupui.edu Fri Jan 4 14:50:18 2008 337 | Return-Path: 338 | Received: from murder (mail.umich.edu [141.211.14.93]) 339 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 340 | Fri, 04 Jan 2008 14:50:18 -0500 341 | X-Sieve: CMU Sieve 2.3 342 | Received: from murder ([unix socket]) 343 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 344 | Fri, 04 Jan 2008 14:50:18 -0500 345 | Received: from eyewitness.mr.itd.umich.edu (eyewitness.mr.itd.umich.edu [141.211.93.142]) 346 | by mission.mail.umich.edu () with ESMTP id m04JoHJi019755; 347 | Fri, 4 Jan 2008 14:50:17 -0500 348 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 349 | BY eyewitness.mr.itd.umich.edu ID 477E8DF2.67B91.5278 ; 350 | 4 Jan 2008 14:50:13 -0500 351 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 352 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 2D1B9BB492; 353 | Fri, 4 Jan 2008 19:47:10 +0000 (GMT) 354 | Message-ID: <200801041948.m04JmdwO007705@nakamura.uits.iupui.edu> 355 | Mime-Version: 1.0 356 | Content-Transfer-Encoding: 7bit 357 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 358 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 960 359 | for ; 360 | Fri, 4 Jan 2008 19:46:50 +0000 (GMT) 361 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 362 | by shmi.uhi.ac.uk (Postfix) with ESMTP id B3E6742F4A 363 | for ; Fri, 4 Jan 2008 19:49:51 +0000 (GMT) 364 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 365 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04JmeV9007707 366 | for ; Fri, 4 Jan 2008 14:48:40 -0500 367 | Received: (from apache@localhost) 368 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04JmdwO007705 369 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 14:48:39 -0500 370 | Date: Fri, 4 Jan 2008 14:48:39 -0500 371 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to rjlowe@iupui.edu using -f 372 | To: source@collab.sakaiproject.org 373 | From: rjlowe@iupui.edu 374 | Subject: [sakai] svn commit: r39765 - in gradebook/trunk/app: business/src/java/org/sakaiproject/tool/gradebook/business business/src/java/org/sakaiproject/tool/gradebook/business/impl ui ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/entity ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/params ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/producers ui/src/webapp/WEB-INF ui/src/webapp/WEB-INF/bundle ui/src/webapp/content/templates 375 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 376 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 377 | Content-Type: text/plain; charset=UTF-8 378 | X-DSPAM-Result: Innocent 379 | X-DSPAM-Processed: Fri Jan 4 14:50:18 2008 380 | X-DSPAM-Confidence: 0.7556 381 | X-DSPAM-Probability: 0.0000 382 | 383 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39765 384 | 385 | Author: rjlowe@iupui.edu 386 | Date: 2008-01-04 14:48:37 -0500 (Fri, 04 Jan 2008) 387 | New Revision: 39765 388 | 389 | Added: 390 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans/AssignmentGradeRecordBean.java 391 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans/AssignmentGradeRecordCreator.java 392 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/entity/GradebookEntryGradeEntityProvider.java 393 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/params/GradeGradebookItemViewParams.java 394 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/producers/GradeGradebookItemProducer.java 395 | gradebook/trunk/app/ui/src/webapp/content/templates/grade-gradebook-item.html 396 | Modified: 397 | gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/GradebookManager.java 398 | gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java 399 | gradebook/trunk/app/ui/pom.xml 400 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans/GradebookItemBean.java 401 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/entity/GradebookEntryEntityProvider.java 402 | gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/producers/AddGradebookItemProducer.java 403 | gradebook/trunk/app/ui/src/webapp/WEB-INF/applicationContext.xml 404 | gradebook/trunk/app/ui/src/webapp/WEB-INF/bundle/messages.properties 405 | gradebook/trunk/app/ui/src/webapp/WEB-INF/requestContext.xml 406 | Log: 407 | SAK-12180 - New helper tool to grade an assignment 408 | 409 | ---------------------- 410 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 411 | You can modify how you receive notifications at My Workspace > Preferences. 412 | 413 | 414 | 415 | From cwen@iupui.edu Fri Jan 4 11:37:30 2008 416 | Return-Path: 417 | Received: from murder (mail.umich.edu [141.211.14.46]) 418 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 419 | Fri, 04 Jan 2008 11:37:30 -0500 420 | X-Sieve: CMU Sieve 2.3 421 | Received: from murder ([unix socket]) 422 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 423 | Fri, 04 Jan 2008 11:37:30 -0500 424 | Received: from tadpole.mr.itd.umich.edu (tadpole.mr.itd.umich.edu [141.211.14.72]) 425 | by fan.mail.umich.edu () with ESMTP id m04GbT9x022078; 426 | Fri, 4 Jan 2008 11:37:29 -0500 427 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 428 | BY tadpole.mr.itd.umich.edu ID 477E60B2.82756.9904 ; 429 | 4 Jan 2008 11:37:09 -0500 430 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 431 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 8D13DBB001; 432 | Fri, 4 Jan 2008 16:37:07 +0000 (GMT) 433 | Message-ID: <200801041635.m04GZQGZ007313@nakamura.uits.iupui.edu> 434 | Mime-Version: 1.0 435 | Content-Transfer-Encoding: 7bit 436 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 437 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 120 438 | for ; 439 | Fri, 4 Jan 2008 16:36:40 +0000 (GMT) 440 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 441 | by shmi.uhi.ac.uk (Postfix) with ESMTP id D430B42E42 442 | for ; Fri, 4 Jan 2008 16:36:37 +0000 (GMT) 443 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 444 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04GZQ7W007315 445 | for ; Fri, 4 Jan 2008 11:35:26 -0500 446 | Received: (from apache@localhost) 447 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04GZQGZ007313 448 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:35:26 -0500 449 | Date: Fri, 4 Jan 2008 11:35:26 -0500 450 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f 451 | To: source@collab.sakaiproject.org 452 | From: cwen@iupui.edu 453 | Subject: [sakai] svn commit: r39764 - in msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums: . ui 454 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 455 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 456 | Content-Type: text/plain; charset=UTF-8 457 | X-DSPAM-Result: Innocent 458 | X-DSPAM-Processed: Fri Jan 4 11:37:30 2008 459 | X-DSPAM-Confidence: 0.7002 460 | X-DSPAM-Probability: 0.0000 461 | 462 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39764 463 | 464 | Author: cwen@iupui.edu 465 | Date: 2008-01-04 11:35:25 -0500 (Fri, 04 Jan 2008) 466 | New Revision: 39764 467 | 468 | Modified: 469 | msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums/PrivateMessagesTool.java 470 | msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums/ui/PrivateMessageDecoratedBean.java 471 | Log: 472 | unmerge Xingtang's checkin for SAK-12488. 473 | 474 | svn merge -r39558:39557 https://source.sakaiproject.org/svn/msgcntr/trunk 475 | U messageforums-app/src/java/org/sakaiproject/tool/messageforums/PrivateMessagesTool.java 476 | U messageforums-app/src/java/org/sakaiproject/tool/messageforums/ui/PrivateMessageDecoratedBean.java 477 | 478 | svn log -r 39558 479 | ------------------------------------------------------------------------ 480 | r39558 | hu2@iupui.edu | 2007-12-20 15:25:38 -0500 (Thu, 20 Dec 2007) | 3 lines 481 | 482 | SAK-12488 483 | when send a message to yourself. click reply to all, cc row should be null. 484 | http://jira.sakaiproject.org/jira/browse/SAK-12488 485 | ------------------------------------------------------------------------ 486 | 487 | 488 | ---------------------- 489 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 490 | You can modify how you receive notifications at My Workspace > Preferences. 491 | 492 | 493 | 494 | From cwen@iupui.edu Fri Jan 4 11:35:08 2008 495 | Return-Path: 496 | Received: from murder (mail.umich.edu [141.211.14.46]) 497 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 498 | Fri, 04 Jan 2008 11:35:08 -0500 499 | X-Sieve: CMU Sieve 2.3 500 | Received: from murder ([unix socket]) 501 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 502 | Fri, 04 Jan 2008 11:35:08 -0500 503 | Received: from it.mr.itd.umich.edu (it.mr.itd.umich.edu [141.211.93.151]) 504 | by fan.mail.umich.edu () with ESMTP id m04GZ6lt020480; 505 | Fri, 4 Jan 2008 11:35:06 -0500 506 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 507 | BY it.mr.itd.umich.edu ID 477E6033.6469D.21870 ; 508 | 4 Jan 2008 11:35:02 -0500 509 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 510 | by paploo.uhi.ac.uk (Postfix) with ESMTP id E40FABAE5B; 511 | Fri, 4 Jan 2008 16:34:38 +0000 (GMT) 512 | Message-ID: <200801041633.m04GX6eG007292@nakamura.uits.iupui.edu> 513 | Mime-Version: 1.0 514 | Content-Transfer-Encoding: 7bit 515 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 516 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 697 517 | for ; 518 | Fri, 4 Jan 2008 16:34:01 +0000 (GMT) 519 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 520 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 1CD0C42E42 521 | for ; Fri, 4 Jan 2008 16:34:17 +0000 (GMT) 522 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 523 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04GX6Y3007294 524 | for ; Fri, 4 Jan 2008 11:33:06 -0500 525 | Received: (from apache@localhost) 526 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04GX6eG007292 527 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:33:06 -0500 528 | Date: Fri, 4 Jan 2008 11:33:06 -0500 529 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f 530 | To: source@collab.sakaiproject.org 531 | From: cwen@iupui.edu 532 | Subject: [sakai] svn commit: r39763 - in msgcntr/trunk: messageforums-api/src/bundle/org/sakaiproject/api/app/messagecenter/bundle messageforums-app/src/java/org/sakaiproject/tool/messageforums 533 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 534 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 535 | Content-Type: text/plain; charset=UTF-8 536 | X-DSPAM-Result: Innocent 537 | X-DSPAM-Processed: Fri Jan 4 11:35:08 2008 538 | X-DSPAM-Confidence: 0.7615 539 | X-DSPAM-Probability: 0.0000 540 | 541 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39763 542 | 543 | Author: cwen@iupui.edu 544 | Date: 2008-01-04 11:33:05 -0500 (Fri, 04 Jan 2008) 545 | New Revision: 39763 546 | 547 | Modified: 548 | msgcntr/trunk/messageforums-api/src/bundle/org/sakaiproject/api/app/messagecenter/bundle/Messages.properties 549 | msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums/PrivateMessagesTool.java 550 | Log: 551 | unmerge Xingtang's check in for SAK-12484. 552 | 553 | svn merge -r39571:39570 https://source.sakaiproject.org/svn/msgcntr/trunk 554 | U messageforums-api/src/bundle/org/sakaiproject/api/app/messagecenter/bundle/Messages.properties 555 | U messageforums-app/src/java/org/sakaiproject/tool/messageforums/PrivateMessagesTool.java 556 | 557 | svn log -r 39571 558 | ------------------------------------------------------------------------ 559 | r39571 | hu2@iupui.edu | 2007-12-20 21:26:28 -0500 (Thu, 20 Dec 2007) | 3 lines 560 | 561 | SAK-12484 562 | reply all cc list should not include the current user name. 563 | http://jira.sakaiproject.org/jira/browse/SAK-12484 564 | ------------------------------------------------------------------------ 565 | 566 | 567 | ---------------------- 568 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 569 | You can modify how you receive notifications at My Workspace > Preferences. 570 | 571 | 572 | 573 | From gsilver@umich.edu Fri Jan 4 11:12:37 2008 574 | Return-Path: 575 | Received: from murder (mail.umich.edu [141.211.14.25]) 576 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 577 | Fri, 04 Jan 2008 11:12:37 -0500 578 | X-Sieve: CMU Sieve 2.3 579 | Received: from murder ([unix socket]) 580 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 581 | Fri, 04 Jan 2008 11:12:37 -0500 582 | Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79]) 583 | by panther.mail.umich.edu () with ESMTP id m04GCaHB030887; 584 | Fri, 4 Jan 2008 11:12:36 -0500 585 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 586 | BY holes.mr.itd.umich.edu ID 477E5AEB.E670B.28397 ; 587 | 4 Jan 2008 11:12:30 -0500 588 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 589 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 99715BAE7D; 590 | Fri, 4 Jan 2008 16:12:27 +0000 (GMT) 591 | Message-ID: <200801041611.m04GB1Lb007221@nakamura.uits.iupui.edu> 592 | Mime-Version: 1.0 593 | Content-Transfer-Encoding: 7bit 594 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 595 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 272 596 | for ; 597 | Fri, 4 Jan 2008 16:12:14 +0000 (GMT) 598 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 599 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 0A6ED42DFC 600 | for ; Fri, 4 Jan 2008 16:12:12 +0000 (GMT) 601 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 602 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04GB1Wt007223 603 | for ; Fri, 4 Jan 2008 11:11:01 -0500 604 | Received: (from apache@localhost) 605 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04GB1Lb007221 606 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:11:01 -0500 607 | Date: Fri, 4 Jan 2008 11:11:01 -0500 608 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f 609 | To: source@collab.sakaiproject.org 610 | From: gsilver@umich.edu 611 | Subject: [sakai] svn commit: r39762 - web/trunk/web-tool/tool/src/bundle 612 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 613 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 614 | Content-Type: text/plain; charset=UTF-8 615 | X-DSPAM-Result: Innocent 616 | X-DSPAM-Processed: Fri Jan 4 11:12:37 2008 617 | X-DSPAM-Confidence: 0.7601 618 | X-DSPAM-Probability: 0.0000 619 | 620 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39762 621 | 622 | Author: gsilver@umich.edu 623 | Date: 2008-01-04 11:11:00 -0500 (Fri, 04 Jan 2008) 624 | New Revision: 39762 625 | 626 | Modified: 627 | web/trunk/web-tool/tool/src/bundle/iframe.properties 628 | Log: 629 | SAK-12596 630 | http://bugs.sakaiproject.org/jira/browse/SAK-12596 631 | - left moot (unused) entries commented for now 632 | 633 | ---------------------- 634 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 635 | You can modify how you receive notifications at My Workspace > Preferences. 636 | 637 | 638 | 639 | From gsilver@umich.edu Fri Jan 4 11:11:52 2008 640 | Return-Path: 641 | Received: from murder (mail.umich.edu [141.211.14.36]) 642 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 643 | Fri, 04 Jan 2008 11:11:52 -0500 644 | X-Sieve: CMU Sieve 2.3 645 | Received: from murder ([unix socket]) 646 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 647 | Fri, 04 Jan 2008 11:11:52 -0500 648 | Received: from creepshow.mr.itd.umich.edu (creepshow.mr.itd.umich.edu [141.211.14.84]) 649 | by godsend.mail.umich.edu () with ESMTP id m04GBqqv025330; 650 | Fri, 4 Jan 2008 11:11:52 -0500 651 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 652 | BY creepshow.mr.itd.umich.edu ID 477E5AB3.5CC32.30840 ; 653 | 4 Jan 2008 11:11:34 -0500 654 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 655 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 62AA4BAE46; 656 | Fri, 4 Jan 2008 16:11:31 +0000 (GMT) 657 | Message-ID: <200801041610.m04GA5KP007209@nakamura.uits.iupui.edu> 658 | Mime-Version: 1.0 659 | Content-Transfer-Encoding: 7bit 660 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 661 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 1006 662 | for ; 663 | Fri, 4 Jan 2008 16:11:18 +0000 (GMT) 664 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 665 | by shmi.uhi.ac.uk (Postfix) with ESMTP id C596A3DFA2 666 | for ; Fri, 4 Jan 2008 16:11:16 +0000 (GMT) 667 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 668 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04GA5LR007211 669 | for ; Fri, 4 Jan 2008 11:10:05 -0500 670 | Received: (from apache@localhost) 671 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04GA5KP007209 672 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:10:05 -0500 673 | Date: Fri, 4 Jan 2008 11:10:05 -0500 674 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f 675 | To: source@collab.sakaiproject.org 676 | From: gsilver@umich.edu 677 | Subject: [sakai] svn commit: r39761 - site/trunk/site-tool/tool/src/bundle 678 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 679 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 680 | Content-Type: text/plain; charset=UTF-8 681 | X-DSPAM-Result: Innocent 682 | X-DSPAM-Processed: Fri Jan 4 11:11:52 2008 683 | X-DSPAM-Confidence: 0.7605 684 | X-DSPAM-Probability: 0.0000 685 | 686 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39761 687 | 688 | Author: gsilver@umich.edu 689 | Date: 2008-01-04 11:10:04 -0500 (Fri, 04 Jan 2008) 690 | New Revision: 39761 691 | 692 | Modified: 693 | site/trunk/site-tool/tool/src/bundle/admin.properties 694 | Log: 695 | SAK-12595 696 | http://bugs.sakaiproject.org/jira/browse/SAK-12595 697 | - left moot (unused) entries commented for now 698 | 699 | ---------------------- 700 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 701 | You can modify how you receive notifications at My Workspace > Preferences. 702 | 703 | 704 | 705 | From zqian@umich.edu Fri Jan 4 11:11:03 2008 706 | Return-Path: 707 | Received: from murder (mail.umich.edu [141.211.14.97]) 708 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 709 | Fri, 04 Jan 2008 11:11:03 -0500 710 | X-Sieve: CMU Sieve 2.3 711 | Received: from murder ([unix socket]) 712 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 713 | Fri, 04 Jan 2008 11:11:03 -0500 714 | Received: from carrie.mr.itd.umich.edu (carrie.mr.itd.umich.edu [141.211.93.152]) 715 | by sleepers.mail.umich.edu () with ESMTP id m04GB3Vg011502; 716 | Fri, 4 Jan 2008 11:11:03 -0500 717 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 718 | BY carrie.mr.itd.umich.edu ID 477E5A8D.B378F.24200 ; 719 | 4 Jan 2008 11:10:56 -0500 720 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 721 | by paploo.uhi.ac.uk (Postfix) with ESMTP id C7251BAD44; 722 | Fri, 4 Jan 2008 16:10:53 +0000 (GMT) 723 | Message-ID: <200801041609.m04G9EuX007197@nakamura.uits.iupui.edu> 724 | Mime-Version: 1.0 725 | Content-Transfer-Encoding: 7bit 726 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 727 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 483 728 | for ; 729 | Fri, 4 Jan 2008 16:10:27 +0000 (GMT) 730 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 731 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 2E7043DFA2 732 | for ; Fri, 4 Jan 2008 16:10:26 +0000 (GMT) 733 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 734 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04G9Eqg007199 735 | for ; Fri, 4 Jan 2008 11:09:15 -0500 736 | Received: (from apache@localhost) 737 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04G9EuX007197 738 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:09:14 -0500 739 | Date: Fri, 4 Jan 2008 11:09:14 -0500 740 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f 741 | To: source@collab.sakaiproject.org 742 | From: zqian@umich.edu 743 | Subject: [sakai] svn commit: r39760 - in site-manage/trunk/site-manage-tool/tool/src: java/org/sakaiproject/site/tool webapp/vm/sitesetup 744 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 745 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 746 | Content-Type: text/plain; charset=UTF-8 747 | X-DSPAM-Result: Innocent 748 | X-DSPAM-Processed: Fri Jan 4 11:11:03 2008 749 | X-DSPAM-Confidence: 0.6959 750 | X-DSPAM-Probability: 0.0000 751 | 752 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39760 753 | 754 | Author: zqian@umich.edu 755 | Date: 2008-01-04 11:09:12 -0500 (Fri, 04 Jan 2008) 756 | New Revision: 39760 757 | 758 | Modified: 759 | site-manage/trunk/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java 760 | site-manage/trunk/site-manage-tool/tool/src/webapp/vm/sitesetup/chef_site-siteInfo-list.vm 761 | Log: 762 | fix to SAK-10911: Refactor use of site.upd, site.upd.site.mbrship and site.upd.grp.mbrship permissions 763 | 764 | ---------------------- 765 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 766 | You can modify how you receive notifications at My Workspace > Preferences. 767 | 768 | 769 | 770 | From gsilver@umich.edu Fri Jan 4 11:10:22 2008 771 | Return-Path: 772 | Received: from murder (mail.umich.edu [141.211.14.39]) 773 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 774 | Fri, 04 Jan 2008 11:10:22 -0500 775 | X-Sieve: CMU Sieve 2.3 776 | Received: from murder ([unix socket]) 777 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 778 | Fri, 04 Jan 2008 11:10:22 -0500 779 | Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79]) 780 | by faithful.mail.umich.edu () with ESMTP id m04GAL9k010604; 781 | Fri, 4 Jan 2008 11:10:21 -0500 782 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 783 | BY holes.mr.itd.umich.edu ID 477E5A67.34350.23015 ; 784 | 4 Jan 2008 11:10:18 -0500 785 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 786 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 98D04BAD43; 787 | Fri, 4 Jan 2008 16:10:11 +0000 (GMT) 788 | Message-ID: <200801041608.m04G8d7w007184@nakamura.uits.iupui.edu> 789 | Mime-Version: 1.0 790 | Content-Transfer-Encoding: 7bit 791 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 792 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 966 793 | for ; 794 | Fri, 4 Jan 2008 16:09:51 +0000 (GMT) 795 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 796 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 9F89542DD0 797 | for ; Fri, 4 Jan 2008 16:09:50 +0000 (GMT) 798 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 799 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04G8dXN007186 800 | for ; Fri, 4 Jan 2008 11:08:39 -0500 801 | Received: (from apache@localhost) 802 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04G8d7w007184 803 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:08:39 -0500 804 | Date: Fri, 4 Jan 2008 11:08:39 -0500 805 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f 806 | To: source@collab.sakaiproject.org 807 | From: gsilver@umich.edu 808 | Subject: [sakai] svn commit: r39759 - mailarchive/trunk/mailarchive-tool/tool/src/bundle 809 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 810 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 811 | Content-Type: text/plain; charset=UTF-8 812 | X-DSPAM-Result: Innocent 813 | X-DSPAM-Processed: Fri Jan 4 11:10:22 2008 814 | X-DSPAM-Confidence: 0.7606 815 | X-DSPAM-Probability: 0.0000 816 | 817 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39759 818 | 819 | Author: gsilver@umich.edu 820 | Date: 2008-01-04 11:08:38 -0500 (Fri, 04 Jan 2008) 821 | New Revision: 39759 822 | 823 | Modified: 824 | mailarchive/trunk/mailarchive-tool/tool/src/bundle/email.properties 825 | Log: 826 | SAK-12592 827 | http://bugs.sakaiproject.org/jira/browse/SAK-12592 828 | - left moot (unused) entries commented for now 829 | 830 | ---------------------- 831 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 832 | You can modify how you receive notifications at My Workspace > Preferences. 833 | 834 | 835 | 836 | From wagnermr@iupui.edu Fri Jan 4 10:38:42 2008 837 | Return-Path: 838 | Received: from murder (mail.umich.edu [141.211.14.90]) 839 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 840 | Fri, 04 Jan 2008 10:38:42 -0500 841 | X-Sieve: CMU Sieve 2.3 842 | Received: from murder ([unix socket]) 843 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 844 | Fri, 04 Jan 2008 10:38:42 -0500 845 | Received: from shining.mr.itd.umich.edu (shining.mr.itd.umich.edu [141.211.93.153]) 846 | by flawless.mail.umich.edu () with ESMTP id m04Fcfjm012313; 847 | Fri, 4 Jan 2008 10:38:41 -0500 848 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 849 | BY shining.mr.itd.umich.edu ID 477E52FA.E6C6E.24093 ; 850 | 4 Jan 2008 10:38:37 -0500 851 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 852 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 6A39594CD2; 853 | Fri, 4 Jan 2008 15:37:36 +0000 (GMT) 854 | Message-ID: <200801041537.m04Fb6Ci007092@nakamura.uits.iupui.edu> 855 | Mime-Version: 1.0 856 | Content-Transfer-Encoding: 7bit 857 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 858 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 690 859 | for ; 860 | Fri, 4 Jan 2008 15:37:21 +0000 (GMT) 861 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 862 | by shmi.uhi.ac.uk (Postfix) with ESMTP id CEFA037ACE 863 | for ; Fri, 4 Jan 2008 15:38:17 +0000 (GMT) 864 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 865 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04Fb6nh007094 866 | for ; Fri, 4 Jan 2008 10:37:06 -0500 867 | Received: (from apache@localhost) 868 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04Fb6Ci007092 869 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 10:37:06 -0500 870 | Date: Fri, 4 Jan 2008 10:37:06 -0500 871 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to wagnermr@iupui.edu using -f 872 | To: source@collab.sakaiproject.org 873 | From: wagnermr@iupui.edu 874 | Subject: [sakai] svn commit: r39758 - in gradebook/trunk: app/business/src/java/org/sakaiproject/tool/gradebook/business/impl service/api/src/java/org/sakaiproject/service/gradebook/shared service/impl/src/java/org/sakaiproject/component/gradebook 875 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 876 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 877 | Content-Type: text/plain; charset=UTF-8 878 | X-DSPAM-Result: Innocent 879 | X-DSPAM-Processed: Fri Jan 4 10:38:42 2008 880 | X-DSPAM-Confidence: 0.7559 881 | X-DSPAM-Probability: 0.0000 882 | 883 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39758 884 | 885 | Author: wagnermr@iupui.edu 886 | Date: 2008-01-04 10:37:04 -0500 (Fri, 04 Jan 2008) 887 | New Revision: 39758 888 | 889 | Modified: 890 | gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java 891 | gradebook/trunk/service/api/src/java/org/sakaiproject/service/gradebook/shared/GradebookService.java 892 | gradebook/trunk/service/impl/src/java/org/sakaiproject/component/gradebook/GradebookServiceHibernateImpl.java 893 | Log: 894 | SAK-12175 895 | http://bugs.sakaiproject.org/jira/browse/SAK-12175 896 | Create methods required for gb integration with the Assignment2 tool 897 | getGradeDefinitionForStudentForItem 898 | 899 | ---------------------- 900 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 901 | You can modify how you receive notifications at My Workspace > Preferences. 902 | 903 | 904 | 905 | From zqian@umich.edu Fri Jan 4 10:17:43 2008 906 | Return-Path: 907 | Received: from murder (mail.umich.edu [141.211.14.97]) 908 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 909 | Fri, 04 Jan 2008 10:17:43 -0500 910 | X-Sieve: CMU Sieve 2.3 911 | Received: from murder ([unix socket]) 912 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 913 | Fri, 04 Jan 2008 10:17:42 -0500 914 | Received: from creepshow.mr.itd.umich.edu (creepshow.mr.itd.umich.edu [141.211.14.84]) 915 | by sleepers.mail.umich.edu () with ESMTP id m04FHgfs011536; 916 | Fri, 4 Jan 2008 10:17:42 -0500 917 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 918 | BY creepshow.mr.itd.umich.edu ID 477E4E0F.CCA4B.926 ; 919 | 4 Jan 2008 10:17:38 -0500 920 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 921 | by paploo.uhi.ac.uk (Postfix) with ESMTP id BD02DBAC64; 922 | Fri, 4 Jan 2008 15:17:34 +0000 (GMT) 923 | Message-ID: <200801041515.m04FFv42007050@nakamura.uits.iupui.edu> 924 | Mime-Version: 1.0 925 | Content-Transfer-Encoding: 7bit 926 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 927 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 25 928 | for ; 929 | Fri, 4 Jan 2008 15:17:11 +0000 (GMT) 930 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 931 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 5B396236B9 932 | for ; Fri, 4 Jan 2008 15:17:08 +0000 (GMT) 933 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 934 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04FFv85007052 935 | for ; Fri, 4 Jan 2008 10:15:57 -0500 936 | Received: (from apache@localhost) 937 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04FFv42007050 938 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 10:15:57 -0500 939 | Date: Fri, 4 Jan 2008 10:15:57 -0500 940 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f 941 | To: source@collab.sakaiproject.org 942 | From: zqian@umich.edu 943 | Subject: [sakai] svn commit: r39757 - in assignment/trunk: assignment-impl/impl/src/java/org/sakaiproject/assignment/impl assignment-tool/tool/src/webapp/vm/assignment 944 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 945 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 946 | Content-Type: text/plain; charset=UTF-8 947 | X-DSPAM-Result: Innocent 948 | X-DSPAM-Processed: Fri Jan 4 10:17:42 2008 949 | X-DSPAM-Confidence: 0.7605 950 | X-DSPAM-Probability: 0.0000 951 | 952 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39757 953 | 954 | Author: zqian@umich.edu 955 | Date: 2008-01-04 10:15:54 -0500 (Fri, 04 Jan 2008) 956 | New Revision: 39757 957 | 958 | Modified: 959 | assignment/trunk/assignment-impl/impl/src/java/org/sakaiproject/assignment/impl/BaseAssignmentService.java 960 | assignment/trunk/assignment-tool/tool/src/webapp/vm/assignment/chef_assignments_instructor_list_submissions.vm 961 | Log: 962 | fix to SAK-12604:Don't show groups/sections filter if the site doesn't have any 963 | 964 | ---------------------- 965 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 966 | You can modify how you receive notifications at My Workspace > Preferences. 967 | 968 | 969 | 970 | From antranig@caret.cam.ac.uk Fri Jan 4 10:04:14 2008 971 | Return-Path: 972 | Received: from murder (mail.umich.edu [141.211.14.25]) 973 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 974 | Fri, 04 Jan 2008 10:04:14 -0500 975 | X-Sieve: CMU Sieve 2.3 976 | Received: from murder ([unix socket]) 977 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 978 | Fri, 04 Jan 2008 10:04:14 -0500 979 | Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79]) 980 | by panther.mail.umich.edu () with ESMTP id m04F4Dci015108; 981 | Fri, 4 Jan 2008 10:04:13 -0500 982 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 983 | BY holes.mr.itd.umich.edu ID 477E4AE3.D7AF.31669 ; 984 | 4 Jan 2008 10:04:05 -0500 985 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 986 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 933E3BAC17; 987 | Fri, 4 Jan 2008 15:04:00 +0000 (GMT) 988 | Message-ID: <200801041502.m04F21Jo007031@nakamura.uits.iupui.edu> 989 | Mime-Version: 1.0 990 | Content-Transfer-Encoding: 7bit 991 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 992 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 32 993 | for ; 994 | Fri, 4 Jan 2008 15:03:15 +0000 (GMT) 995 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 996 | by shmi.uhi.ac.uk (Postfix) with ESMTP id AC2F6236B9 997 | for ; Fri, 4 Jan 2008 15:03:12 +0000 (GMT) 998 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 999 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04F21hn007033 1000 | for ; Fri, 4 Jan 2008 10:02:01 -0500 1001 | Received: (from apache@localhost) 1002 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04F21Jo007031 1003 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 10:02:01 -0500 1004 | Date: Fri, 4 Jan 2008 10:02:01 -0500 1005 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to antranig@caret.cam.ac.uk using -f 1006 | To: source@collab.sakaiproject.org 1007 | From: antranig@caret.cam.ac.uk 1008 | Subject: [sakai] svn commit: r39756 - in component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component: impl impl/spring/support impl/spring/support/dynamic impl/support util 1009 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1010 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1011 | Content-Type: text/plain; charset=UTF-8 1012 | X-DSPAM-Result: Innocent 1013 | X-DSPAM-Processed: Fri Jan 4 10:04:14 2008 1014 | X-DSPAM-Confidence: 0.6932 1015 | X-DSPAM-Probability: 0.0000 1016 | 1017 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39756 1018 | 1019 | Author: antranig@caret.cam.ac.uk 1020 | Date: 2008-01-04 10:01:40 -0500 (Fri, 04 Jan 2008) 1021 | New Revision: 39756 1022 | 1023 | Added: 1024 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/spring/support/dynamic/ 1025 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/spring/support/dynamic/DynamicComponentManager.java 1026 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/support/ 1027 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/support/DynamicComponentRecord.java 1028 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/support/DynamicJARManager.java 1029 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/support/JARRecord.java 1030 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/ByteToCharBase64.java 1031 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/FileUtil.java 1032 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/RecordFileIO.java 1033 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/RecordReader.java 1034 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/RecordWriter.java 1035 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/StreamDigestor.java 1036 | Modified: 1037 | component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/spring/support/ComponentsLoaderImpl.java 1038 | Log: 1039 | Temporary commit of incomplete work on JAR caching 1040 | 1041 | ---------------------- 1042 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1043 | You can modify how you receive notifications at My Workspace > Preferences. 1044 | 1045 | 1046 | 1047 | From gopal.ramasammycook@gmail.com Fri Jan 4 09:05:31 2008 1048 | Return-Path: 1049 | Received: from murder (mail.umich.edu [141.211.14.90]) 1050 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1051 | Fri, 04 Jan 2008 09:05:31 -0500 1052 | X-Sieve: CMU Sieve 2.3 1053 | Received: from murder ([unix socket]) 1054 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1055 | Fri, 04 Jan 2008 09:05:31 -0500 1056 | Received: from guys.mr.itd.umich.edu (guys.mr.itd.umich.edu [141.211.14.76]) 1057 | by flawless.mail.umich.edu () with ESMTP id m04E5U3C029277; 1058 | Fri, 4 Jan 2008 09:05:30 -0500 1059 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1060 | BY guys.mr.itd.umich.edu ID 477E3D23.EE2E7.5237 ; 1061 | 4 Jan 2008 09:05:26 -0500 1062 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1063 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 33C7856DC0; 1064 | Fri, 4 Jan 2008 14:05:26 +0000 (GMT) 1065 | Message-ID: <200801041403.m04E3psW006926@nakamura.uits.iupui.edu> 1066 | Mime-Version: 1.0 1067 | Content-Transfer-Encoding: 7bit 1068 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1069 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 575 1070 | for ; 1071 | Fri, 4 Jan 2008 14:05:04 +0000 (GMT) 1072 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1073 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 3C0261D617 1074 | for ; Fri, 4 Jan 2008 14:05:03 +0000 (GMT) 1075 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1076 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04E3pQS006928 1077 | for ; Fri, 4 Jan 2008 09:03:52 -0500 1078 | Received: (from apache@localhost) 1079 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04E3psW006926 1080 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 09:03:51 -0500 1081 | Date: Fri, 4 Jan 2008 09:03:51 -0500 1082 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gopal.ramasammycook@gmail.com using -f 1083 | To: source@collab.sakaiproject.org 1084 | From: gopal.ramasammycook@gmail.com 1085 | Subject: [sakai] svn commit: r39755 - in sam/branches/SAK-12065: samigo-api/src/java/org/sakaiproject/tool/assessment/shared/api/grading samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation samigo-services/src/java/org/sakaiproject/tool/assessment/facade samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/ifc samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/integrated samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/standalone samigo-services/src/java/org/sakaiproject/tool/assessment/shared/impl/grading 1086 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1087 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1088 | Content-Type: text/plain; charset=UTF-8 1089 | X-DSPAM-Result: Innocent 1090 | X-DSPAM-Processed: Fri Jan 4 09:05:31 2008 1091 | X-DSPAM-Confidence: 0.7558 1092 | X-DSPAM-Probability: 0.0000 1093 | 1094 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39755 1095 | 1096 | Author: gopal.ramasammycook@gmail.com 1097 | Date: 2008-01-04 09:02:54 -0500 (Fri, 04 Jan 2008) 1098 | New Revision: 39755 1099 | 1100 | Modified: 1101 | sam/branches/SAK-12065/samigo-api/src/java/org/sakaiproject/tool/assessment/shared/api/grading/GradingSectionAwareServiceAPI.java 1102 | sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation/QuestionScoresBean.java 1103 | sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation/SubmissionStatusBean.java 1104 | sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation/TotalScoresBean.java 1105 | sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/SubmissionStatusListener.java 1106 | sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/facade/PublishedAssessmentFacadeQueries.java 1107 | sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/facade/PublishedAssessmentFacadeQueriesAPI.java 1108 | sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/ifc/SectionAwareServiceHelper.java 1109 | sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/integrated/SectionAwareServiceHelperImpl.java 1110 | sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/standalone/SectionAwareServiceHelperImpl.java 1111 | sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/shared/impl/grading/GradingSectionAwareServiceImpl.java 1112 | Log: 1113 | SAK-12065 Gopal - Samigo Group Release. SubmissionStatus/TotalScores/Questions View filter. 1114 | 1115 | ---------------------- 1116 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1117 | You can modify how you receive notifications at My Workspace > Preferences. 1118 | 1119 | 1120 | 1121 | From david.horwitz@uct.ac.za Fri Jan 4 07:02:32 2008 1122 | Return-Path: 1123 | Received: from murder (mail.umich.edu [141.211.14.39]) 1124 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1125 | Fri, 04 Jan 2008 07:02:32 -0500 1126 | X-Sieve: CMU Sieve 2.3 1127 | Received: from murder ([unix socket]) 1128 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1129 | Fri, 04 Jan 2008 07:02:32 -0500 1130 | Received: from guys.mr.itd.umich.edu (guys.mr.itd.umich.edu [141.211.14.76]) 1131 | by faithful.mail.umich.edu () with ESMTP id m04C2VN7026678; 1132 | Fri, 4 Jan 2008 07:02:31 -0500 1133 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1134 | BY guys.mr.itd.umich.edu ID 477E2050.C2599.3263 ; 1135 | 4 Jan 2008 07:02:27 -0500 1136 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1137 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 6497FBA906; 1138 | Fri, 4 Jan 2008 12:02:11 +0000 (GMT) 1139 | Message-ID: <200801041200.m04C0gfK006793@nakamura.uits.iupui.edu> 1140 | Mime-Version: 1.0 1141 | Content-Transfer-Encoding: 7bit 1142 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1143 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 611 1144 | for ; 1145 | Fri, 4 Jan 2008 12:01:53 +0000 (GMT) 1146 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1147 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 5296342D3C 1148 | for ; Fri, 4 Jan 2008 12:01:53 +0000 (GMT) 1149 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1150 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04C0gnm006795 1151 | for ; Fri, 4 Jan 2008 07:00:42 -0500 1152 | Received: (from apache@localhost) 1153 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04C0gfK006793 1154 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 07:00:42 -0500 1155 | Date: Fri, 4 Jan 2008 07:00:42 -0500 1156 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to david.horwitz@uct.ac.za using -f 1157 | To: source@collab.sakaiproject.org 1158 | From: david.horwitz@uct.ac.za 1159 | Subject: [sakai] svn commit: r39754 - in polls/branches/sakai_2-5-x: . tool tool/src/java/org/sakaiproject/poll/tool tool/src/java/org/sakaiproject/poll/tool/evolvers tool/src/webapp/WEB-INF 1160 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1161 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1162 | Content-Type: text/plain; charset=UTF-8 1163 | X-DSPAM-Result: Innocent 1164 | X-DSPAM-Processed: Fri Jan 4 07:02:32 2008 1165 | X-DSPAM-Confidence: 0.6526 1166 | X-DSPAM-Probability: 0.0000 1167 | 1168 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39754 1169 | 1170 | Author: david.horwitz@uct.ac.za 1171 | Date: 2008-01-04 07:00:10 -0500 (Fri, 04 Jan 2008) 1172 | New Revision: 39754 1173 | 1174 | Added: 1175 | polls/branches/sakai_2-5-x/tool/src/java/org/sakaiproject/poll/tool/evolvers/ 1176 | polls/branches/sakai_2-5-x/tool/src/java/org/sakaiproject/poll/tool/evolvers/SakaiFCKTextEvolver.java 1177 | Removed: 1178 | polls/branches/sakai_2-5-x/tool/src/java/org/sakaiproject/poll/tool/evolvers/SakaiFCKTextEvolver.java 1179 | Modified: 1180 | polls/branches/sakai_2-5-x/.classpath 1181 | polls/branches/sakai_2-5-x/tool/pom.xml 1182 | polls/branches/sakai_2-5-x/tool/src/webapp/WEB-INF/requestContext.xml 1183 | Log: 1184 | svn log -r39753 https://source.sakaiproject.org/svn/polls/trunk 1185 | ------------------------------------------------------------------------ 1186 | r39753 | david.horwitz@uct.ac.za | 2008-01-04 13:05:51 +0200 (Fri, 04 Jan 2008) | 1 line 1187 | 1188 | SAK-12228 implmented workaround sugested by AB - needs to be tested against a trunk build 1189 | ------------------------------------------------------------------------ 1190 | dhorwitz@david-horwitz-6:~/branchManagemnt/sakai_2-5-x> svn merge -c39753 https://source.sakaiproject.org/svn/polls/trunk polls/ 1191 | U polls/.classpath 1192 | A polls/tool/src/java/org/sakaiproject/poll/tool/evolvers 1193 | A polls/tool/src/java/org/sakaiproject/poll/tool/evolvers/SakaiFCKTextEvolver.java 1194 | C polls/tool/src/webapp/WEB-INF/requestContext.xml 1195 | U polls/tool/pom.xml 1196 | 1197 | dhorwitz@david-horwitz-6:~/branchManagemnt/sakai_2-5-x> svn resolved polls/tool/src/webapp/WEB-INF/requestContext.xml 1198 | Resolved conflicted state of 'polls/tool/src/webapp/WEB-INF/requestContext.xml 1199 | 1200 | 1201 | ---------------------- 1202 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1203 | You can modify how you receive notifications at My Workspace > Preferences. 1204 | 1205 | 1206 | 1207 | From david.horwitz@uct.ac.za Fri Jan 4 06:08:27 2008 1208 | Return-Path: 1209 | Received: from murder (mail.umich.edu [141.211.14.98]) 1210 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1211 | Fri, 04 Jan 2008 06:08:27 -0500 1212 | X-Sieve: CMU Sieve 2.3 1213 | Received: from murder ([unix socket]) 1214 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1215 | Fri, 04 Jan 2008 06:08:27 -0500 1216 | Received: from firestarter.mr.itd.umich.edu (firestarter.mr.itd.umich.edu [141.211.14.83]) 1217 | by casino.mail.umich.edu () with ESMTP id m04B8Qw9001368; 1218 | Fri, 4 Jan 2008 06:08:26 -0500 1219 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1220 | BY firestarter.mr.itd.umich.edu ID 477E13A5.30FC0.24054 ; 1221 | 4 Jan 2008 06:08:23 -0500 1222 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1223 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 784A476D7B; 1224 | Fri, 4 Jan 2008 11:08:12 +0000 (GMT) 1225 | Message-ID: <200801041106.m04B6lK3006677@nakamura.uits.iupui.edu> 1226 | Mime-Version: 1.0 1227 | Content-Transfer-Encoding: 7bit 1228 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1229 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 585 1230 | for ; 1231 | Fri, 4 Jan 2008 11:07:56 +0000 (GMT) 1232 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1233 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 1CACC42D0C 1234 | for ; Fri, 4 Jan 2008 11:07:58 +0000 (GMT) 1235 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1236 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04B6lWM006679 1237 | for ; Fri, 4 Jan 2008 06:06:47 -0500 1238 | Received: (from apache@localhost) 1239 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04B6lK3006677 1240 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 06:06:47 -0500 1241 | Date: Fri, 4 Jan 2008 06:06:47 -0500 1242 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to david.horwitz@uct.ac.za using -f 1243 | To: source@collab.sakaiproject.org 1244 | From: david.horwitz@uct.ac.za 1245 | Subject: [sakai] svn commit: r39753 - in polls/trunk: . tool tool/src/java/org/sakaiproject/poll/tool tool/src/java/org/sakaiproject/poll/tool/evolvers tool/src/webapp/WEB-INF 1246 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1247 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1248 | Content-Type: text/plain; charset=UTF-8 1249 | X-DSPAM-Result: Innocent 1250 | X-DSPAM-Processed: Fri Jan 4 06:08:27 2008 1251 | X-DSPAM-Confidence: 0.6948 1252 | X-DSPAM-Probability: 0.0000 1253 | 1254 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39753 1255 | 1256 | Author: david.horwitz@uct.ac.za 1257 | Date: 2008-01-04 06:05:51 -0500 (Fri, 04 Jan 2008) 1258 | New Revision: 39753 1259 | 1260 | Added: 1261 | polls/trunk/tool/src/java/org/sakaiproject/poll/tool/evolvers/ 1262 | polls/trunk/tool/src/java/org/sakaiproject/poll/tool/evolvers/SakaiFCKTextEvolver.java 1263 | Modified: 1264 | polls/trunk/.classpath 1265 | polls/trunk/tool/pom.xml 1266 | polls/trunk/tool/src/webapp/WEB-INF/requestContext.xml 1267 | Log: 1268 | SAK-12228 implmented workaround sugested by AB - needs to be tested against a trunk build 1269 | 1270 | ---------------------- 1271 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1272 | You can modify how you receive notifications at My Workspace > Preferences. 1273 | 1274 | 1275 | 1276 | From david.horwitz@uct.ac.za Fri Jan 4 04:49:08 2008 1277 | Return-Path: 1278 | Received: from murder (mail.umich.edu [141.211.14.92]) 1279 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1280 | Fri, 04 Jan 2008 04:49:08 -0500 1281 | X-Sieve: CMU Sieve 2.3 1282 | Received: from murder ([unix socket]) 1283 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1284 | Fri, 04 Jan 2008 04:49:08 -0500 1285 | Received: from galaxyquest.mr.itd.umich.edu (galaxyquest.mr.itd.umich.edu [141.211.93.145]) 1286 | by score.mail.umich.edu () with ESMTP id m049n60G017588; 1287 | Fri, 4 Jan 2008 04:49:06 -0500 1288 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1289 | BY galaxyquest.mr.itd.umich.edu ID 477E010C.48C2.10259 ; 1290 | 4 Jan 2008 04:49:03 -0500 1291 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1292 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 254CC8CDEE; 1293 | Fri, 4 Jan 2008 09:48:55 +0000 (GMT) 1294 | Message-ID: <200801040947.m049lUxo006517@nakamura.uits.iupui.edu> 1295 | Mime-Version: 1.0 1296 | Content-Transfer-Encoding: 7bit 1297 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1298 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 246 1299 | for ; 1300 | Fri, 4 Jan 2008 09:48:36 +0000 (GMT) 1301 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1302 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 8C13342C92 1303 | for ; Fri, 4 Jan 2008 09:48:40 +0000 (GMT) 1304 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1305 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m049lU3P006519 1306 | for ; Fri, 4 Jan 2008 04:47:30 -0500 1307 | Received: (from apache@localhost) 1308 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m049lUxo006517 1309 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 04:47:30 -0500 1310 | Date: Fri, 4 Jan 2008 04:47:30 -0500 1311 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to david.horwitz@uct.ac.za using -f 1312 | To: source@collab.sakaiproject.org 1313 | From: david.horwitz@uct.ac.za 1314 | Subject: [sakai] svn commit: r39752 - in podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp: css podcasts 1315 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1316 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1317 | Content-Type: text/plain; charset=UTF-8 1318 | X-DSPAM-Result: Innocent 1319 | X-DSPAM-Processed: Fri Jan 4 04:49:08 2008 1320 | X-DSPAM-Confidence: 0.6528 1321 | X-DSPAM-Probability: 0.0000 1322 | 1323 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39752 1324 | 1325 | Author: david.horwitz@uct.ac.za 1326 | Date: 2008-01-04 04:47:16 -0500 (Fri, 04 Jan 2008) 1327 | New Revision: 39752 1328 | 1329 | Modified: 1330 | podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/css/podcaster.css 1331 | podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podMain.jsp 1332 | Log: 1333 | svn log -r39641 https://source.sakaiproject.org/svn/podcasts/trunk 1334 | ------------------------------------------------------------------------ 1335 | r39641 | josrodri@iupui.edu | 2007-12-28 23:44:24 +0200 (Fri, 28 Dec 2007) | 1 line 1336 | 1337 | SAK-9882: refactored podMain.jsp the right way (at least much closer to) 1338 | ------------------------------------------------------------------------ 1339 | 1340 | dhorwitz@david-horwitz-6:~/branchManagemnt/sakai_2-5-x> svn merge -c39641 https://source.sakaiproject.org/svn/podcasts/trunk podcasts/ 1341 | C podcasts/podcasts-app/src/webapp/podcasts/podMain.jsp 1342 | U podcasts/podcasts-app/src/webapp/css/podcaster.css 1343 | 1344 | conflict merged manualy 1345 | 1346 | 1347 | 1348 | ---------------------- 1349 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1350 | You can modify how you receive notifications at My Workspace > Preferences. 1351 | 1352 | 1353 | 1354 | From david.horwitz@uct.ac.za Fri Jan 4 04:33:44 2008 1355 | Return-Path: 1356 | Received: from murder (mail.umich.edu [141.211.14.46]) 1357 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1358 | Fri, 04 Jan 2008 04:33:44 -0500 1359 | X-Sieve: CMU Sieve 2.3 1360 | Received: from murder ([unix socket]) 1361 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1362 | Fri, 04 Jan 2008 04:33:44 -0500 1363 | Received: from workinggirl.mr.itd.umich.edu (workinggirl.mr.itd.umich.edu [141.211.93.143]) 1364 | by fan.mail.umich.edu () with ESMTP id m049Xge3031803; 1365 | Fri, 4 Jan 2008 04:33:42 -0500 1366 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1367 | BY workinggirl.mr.itd.umich.edu ID 477DFD6C.75DBE.26054 ; 1368 | 4 Jan 2008 04:33:35 -0500 1369 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1370 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 6C929BA656; 1371 | Fri, 4 Jan 2008 09:33:27 +0000 (GMT) 1372 | Message-ID: <200801040932.m049W2i5006493@nakamura.uits.iupui.edu> 1373 | Mime-Version: 1.0 1374 | Content-Transfer-Encoding: 7bit 1375 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1376 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 153 1377 | for ; 1378 | Fri, 4 Jan 2008 09:33:10 +0000 (GMT) 1379 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1380 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 6C69423767 1381 | for ; Fri, 4 Jan 2008 09:33:13 +0000 (GMT) 1382 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1383 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m049W3fl006495 1384 | for ; Fri, 4 Jan 2008 04:32:03 -0500 1385 | Received: (from apache@localhost) 1386 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m049W2i5006493 1387 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 04:32:02 -0500 1388 | Date: Fri, 4 Jan 2008 04:32:02 -0500 1389 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to david.horwitz@uct.ac.za using -f 1390 | To: source@collab.sakaiproject.org 1391 | From: david.horwitz@uct.ac.za 1392 | Subject: [sakai] svn commit: r39751 - in podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp: css images podcasts 1393 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1394 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1395 | Content-Type: text/plain; charset=UTF-8 1396 | X-DSPAM-Result: Innocent 1397 | X-DSPAM-Processed: Fri Jan 4 04:33:44 2008 1398 | X-DSPAM-Confidence: 0.7002 1399 | X-DSPAM-Probability: 0.0000 1400 | 1401 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39751 1402 | 1403 | Author: david.horwitz@uct.ac.za 1404 | Date: 2008-01-04 04:31:35 -0500 (Fri, 04 Jan 2008) 1405 | New Revision: 39751 1406 | 1407 | Removed: 1408 | podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/images/rss-feed-icon.png 1409 | podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podPermissions.jsp 1410 | Modified: 1411 | podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/css/podcaster.css 1412 | podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podDelete.jsp 1413 | podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podMain.jsp 1414 | podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podNoResource.jsp 1415 | podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podOptions.jsp 1416 | Log: 1417 | svn log -r39146 https://source.sakaiproject.org/svn/podcasts/trunk 1418 | ------------------------------------------------------------------------ 1419 | r39146 | josrodri@iupui.edu | 2007-12-12 21:40:33 +0200 (Wed, 12 Dec 2007) | 1 line 1420 | 1421 | SAK-9882: refactored the other pages as well to take advantage of proper jsp components as well as validation cleanup. 1422 | ------------------------------------------------------------------------ 1423 | dhorwitz@david-horwitz-6:~/branchManagemnt/sakai_2-5-x> svn merge -c39146 https://source.sakaiproject.org/svn/podcasts/trunk podcasts/ 1424 | D podcasts/podcasts-app/src/webapp/podcasts/podPermissions.jsp 1425 | U podcasts/podcasts-app/src/webapp/podcasts/podDelete.jsp 1426 | U podcasts/podcasts-app/src/webapp/podcasts/podMain.jsp 1427 | U podcasts/podcasts-app/src/webapp/podcasts/podNoResource.jsp 1428 | U podcasts/podcasts-app/src/webapp/podcasts/podOptions.jsp 1429 | D podcasts/podcasts-app/src/webapp/images/rss-feed-icon.png 1430 | U podcasts/podcasts-app/src/webapp/css/podcaster.css 1431 | 1432 | 1433 | 1434 | ---------------------- 1435 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1436 | You can modify how you receive notifications at My Workspace > Preferences. 1437 | 1438 | 1439 | 1440 | From stephen.marquard@uct.ac.za Fri Jan 4 04:07:34 2008 1441 | Return-Path: 1442 | Received: from murder (mail.umich.edu [141.211.14.25]) 1443 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1444 | Fri, 04 Jan 2008 04:07:34 -0500 1445 | X-Sieve: CMU Sieve 2.3 1446 | Received: from murder ([unix socket]) 1447 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1448 | Fri, 04 Jan 2008 04:07:34 -0500 1449 | Received: from salemslot.mr.itd.umich.edu (salemslot.mr.itd.umich.edu [141.211.14.58]) 1450 | by panther.mail.umich.edu () with ESMTP id m0497WAN027902; 1451 | Fri, 4 Jan 2008 04:07:32 -0500 1452 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1453 | BY salemslot.mr.itd.umich.edu ID 477DF74E.49493.30415 ; 1454 | 4 Jan 2008 04:07:29 -0500 1455 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1456 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 88598BA5B6; 1457 | Fri, 4 Jan 2008 09:07:19 +0000 (GMT) 1458 | Message-ID: <200801040905.m0495rWB006420@nakamura.uits.iupui.edu> 1459 | Mime-Version: 1.0 1460 | Content-Transfer-Encoding: 7bit 1461 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1462 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 385 1463 | for ; 1464 | Fri, 4 Jan 2008 09:07:04 +0000 (GMT) 1465 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1466 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 90636418A8 1467 | for ; Fri, 4 Jan 2008 09:07:04 +0000 (GMT) 1468 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1469 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m0495sZs006422 1470 | for ; Fri, 4 Jan 2008 04:05:54 -0500 1471 | Received: (from apache@localhost) 1472 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m0495rWB006420 1473 | for source@collab.sakaiproject.org; Fri, 4 Jan 2008 04:05:53 -0500 1474 | Date: Fri, 4 Jan 2008 04:05:53 -0500 1475 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to stephen.marquard@uct.ac.za using -f 1476 | To: source@collab.sakaiproject.org 1477 | From: stephen.marquard@uct.ac.za 1478 | Subject: [sakai] svn commit: r39750 - event/branches/SAK-6216/event-util/util/src/java/org/sakaiproject/util 1479 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1480 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1481 | Content-Type: text/plain; charset=UTF-8 1482 | X-DSPAM-Result: Innocent 1483 | X-DSPAM-Processed: Fri Jan 4 04:07:34 2008 1484 | X-DSPAM-Confidence: 0.7554 1485 | X-DSPAM-Probability: 0.0000 1486 | 1487 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39750 1488 | 1489 | Author: stephen.marquard@uct.ac.za 1490 | Date: 2008-01-04 04:05:43 -0500 (Fri, 04 Jan 2008) 1491 | New Revision: 39750 1492 | 1493 | Modified: 1494 | event/branches/SAK-6216/event-util/util/src/java/org/sakaiproject/util/EmailNotification.java 1495 | Log: 1496 | SAK-6216 merge event change from SAK-11169 (r39033) to synchronize branch with 2-5-x (for convenience for UCT local build) 1497 | 1498 | ---------------------- 1499 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1500 | You can modify how you receive notifications at My Workspace > Preferences. 1501 | 1502 | 1503 | 1504 | From louis@media.berkeley.edu Thu Jan 3 19:51:21 2008 1505 | Return-Path: 1506 | Received: from murder (mail.umich.edu [141.211.14.91]) 1507 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1508 | Thu, 03 Jan 2008 19:51:21 -0500 1509 | X-Sieve: CMU Sieve 2.3 1510 | Received: from murder ([unix socket]) 1511 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1512 | Thu, 03 Jan 2008 19:51:21 -0500 1513 | Received: from eyewitness.mr.itd.umich.edu (eyewitness.mr.itd.umich.edu [141.211.93.142]) 1514 | by jacknife.mail.umich.edu () with ESMTP id m040pJHB027171; 1515 | Thu, 3 Jan 2008 19:51:19 -0500 1516 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1517 | BY eyewitness.mr.itd.umich.edu ID 477D8300.AC098.32562 ; 1518 | 3 Jan 2008 19:51:15 -0500 1519 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1520 | by paploo.uhi.ac.uk (Postfix) with ESMTP id E6CC4B9F8A; 1521 | Fri, 4 Jan 2008 00:36:06 +0000 (GMT) 1522 | Message-ID: <200801040023.m040NpCc005473@nakamura.uits.iupui.edu> 1523 | Mime-Version: 1.0 1524 | Content-Transfer-Encoding: 7bit 1525 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1526 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 754 1527 | for ; 1528 | Fri, 4 Jan 2008 00:35:43 +0000 (GMT) 1529 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1530 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 8889842C49 1531 | for ; Fri, 4 Jan 2008 00:25:00 +0000 (GMT) 1532 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1533 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m040NpgM005475 1534 | for ; Thu, 3 Jan 2008 19:23:51 -0500 1535 | Received: (from apache@localhost) 1536 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m040NpCc005473 1537 | for source@collab.sakaiproject.org; Thu, 3 Jan 2008 19:23:51 -0500 1538 | Date: Thu, 3 Jan 2008 19:23:51 -0500 1539 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to louis@media.berkeley.edu using -f 1540 | To: source@collab.sakaiproject.org 1541 | From: louis@media.berkeley.edu 1542 | Subject: [sakai] svn commit: r39749 - in bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src: bundle webapp/vm/sitesetup 1543 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1544 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1545 | Content-Type: text/plain; charset=UTF-8 1546 | X-DSPAM-Result: Innocent 1547 | X-DSPAM-Processed: Thu Jan 3 19:51:20 2008 1548 | X-DSPAM-Confidence: 0.6956 1549 | X-DSPAM-Probability: 0.0000 1550 | 1551 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39749 1552 | 1553 | Author: louis@media.berkeley.edu 1554 | Date: 2008-01-03 19:23:46 -0500 (Thu, 03 Jan 2008) 1555 | New Revision: 39749 1556 | 1557 | Modified: 1558 | bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/bundle/sitesetupgeneric.properties 1559 | bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/webapp/vm/sitesetup/chef_site-importSites.vm 1560 | Log: 1561 | BSP-1420 Update text to clarify "Re-Use Materials..." option in WS Setup 1562 | 1563 | ---------------------- 1564 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1565 | You can modify how you receive notifications at My Workspace > Preferences. 1566 | 1567 | 1568 | 1569 | From louis@media.berkeley.edu Thu Jan 3 17:18:23 2008 1570 | Return-Path: 1571 | Received: from murder (mail.umich.edu [141.211.14.91]) 1572 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1573 | Thu, 03 Jan 2008 17:18:23 -0500 1574 | X-Sieve: CMU Sieve 2.3 1575 | Received: from murder ([unix socket]) 1576 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1577 | Thu, 03 Jan 2008 17:18:23 -0500 1578 | Received: from salemslot.mr.itd.umich.edu (salemslot.mr.itd.umich.edu [141.211.14.58]) 1579 | by jacknife.mail.umich.edu () with ESMTP id m03MIMXY027729; 1580 | Thu, 3 Jan 2008 17:18:22 -0500 1581 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1582 | BY salemslot.mr.itd.umich.edu ID 477D5F23.797F6.16348 ; 1583 | 3 Jan 2008 17:18:14 -0500 1584 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1585 | by paploo.uhi.ac.uk (Postfix) with ESMTP id EF439B98CE; 1586 | Thu, 3 Jan 2008 22:18:19 +0000 (GMT) 1587 | Message-ID: <200801032216.m03MGhDa005292@nakamura.uits.iupui.edu> 1588 | Mime-Version: 1.0 1589 | Content-Transfer-Encoding: 7bit 1590 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1591 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 236 1592 | for ; 1593 | Thu, 3 Jan 2008 22:18:04 +0000 (GMT) 1594 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1595 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 905D53C2FD 1596 | for ; Thu, 3 Jan 2008 22:17:52 +0000 (GMT) 1597 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1598 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03MGhrs005294 1599 | for ; Thu, 3 Jan 2008 17:16:43 -0500 1600 | Received: (from apache@localhost) 1601 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03MGhDa005292 1602 | for source@collab.sakaiproject.org; Thu, 3 Jan 2008 17:16:43 -0500 1603 | Date: Thu, 3 Jan 2008 17:16:43 -0500 1604 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to louis@media.berkeley.edu using -f 1605 | To: source@collab.sakaiproject.org 1606 | From: louis@media.berkeley.edu 1607 | Subject: [sakai] svn commit: r39746 - in bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src: bundle webapp/vm/sitesetup 1608 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1609 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1610 | Content-Type: text/plain; charset=UTF-8 1611 | X-DSPAM-Result: Innocent 1612 | X-DSPAM-Processed: Thu Jan 3 17:18:23 2008 1613 | X-DSPAM-Confidence: 0.6959 1614 | X-DSPAM-Probability: 0.0000 1615 | 1616 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39746 1617 | 1618 | Author: louis@media.berkeley.edu 1619 | Date: 2008-01-03 17:16:39 -0500 (Thu, 03 Jan 2008) 1620 | New Revision: 39746 1621 | 1622 | Modified: 1623 | bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/bundle/sitesetupgeneric.properties 1624 | bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/webapp/vm/sitesetup/chef_site-siteInfo-duplicate.vm 1625 | Log: 1626 | BSP-1421 Add text to clarify "Duplicate Site" option in Site Info 1627 | 1628 | ---------------------- 1629 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1630 | You can modify how you receive notifications at My Workspace > Preferences. 1631 | 1632 | 1633 | 1634 | From ray@media.berkeley.edu Thu Jan 3 17:07:00 2008 1635 | Return-Path: 1636 | Received: from murder (mail.umich.edu [141.211.14.39]) 1637 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1638 | Thu, 03 Jan 2008 17:07:00 -0500 1639 | X-Sieve: CMU Sieve 2.3 1640 | Received: from murder ([unix socket]) 1641 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1642 | Thu, 03 Jan 2008 17:07:00 -0500 1643 | Received: from anniehall.mr.itd.umich.edu (anniehall.mr.itd.umich.edu [141.211.93.141]) 1644 | by faithful.mail.umich.edu () with ESMTP id m03M6xaq014868; 1645 | Thu, 3 Jan 2008 17:06:59 -0500 1646 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1647 | BY anniehall.mr.itd.umich.edu ID 477D5C7A.4FE1F.22211 ; 1648 | 3 Jan 2008 17:06:53 -0500 1649 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1650 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 0BC8D7225E; 1651 | Thu, 3 Jan 2008 22:06:57 +0000 (GMT) 1652 | Message-ID: <200801032205.m03M5Ea7005273@nakamura.uits.iupui.edu> 1653 | Mime-Version: 1.0 1654 | Content-Transfer-Encoding: 7bit 1655 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1656 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 554 1657 | for ; 1658 | Thu, 3 Jan 2008 22:06:34 +0000 (GMT) 1659 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1660 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 2AB513C2FD 1661 | for ; Thu, 3 Jan 2008 22:06:23 +0000 (GMT) 1662 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1663 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03M5EQa005275 1664 | for ; Thu, 3 Jan 2008 17:05:14 -0500 1665 | Received: (from apache@localhost) 1666 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03M5Ea7005273 1667 | for source@collab.sakaiproject.org; Thu, 3 Jan 2008 17:05:14 -0500 1668 | Date: Thu, 3 Jan 2008 17:05:14 -0500 1669 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to ray@media.berkeley.edu using -f 1670 | To: source@collab.sakaiproject.org 1671 | From: ray@media.berkeley.edu 1672 | Subject: [sakai] svn commit: r39745 - providers/trunk/cm/cm-authz-provider/src/java/org/sakaiproject/coursemanagement/impl/provider 1673 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1674 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1675 | Content-Type: text/plain; charset=UTF-8 1676 | X-DSPAM-Result: Innocent 1677 | X-DSPAM-Processed: Thu Jan 3 17:07:00 2008 1678 | X-DSPAM-Confidence: 0.7556 1679 | X-DSPAM-Probability: 0.0000 1680 | 1681 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39745 1682 | 1683 | Author: ray@media.berkeley.edu 1684 | Date: 2008-01-03 17:05:11 -0500 (Thu, 03 Jan 2008) 1685 | New Revision: 39745 1686 | 1687 | Modified: 1688 | providers/trunk/cm/cm-authz-provider/src/java/org/sakaiproject/coursemanagement/impl/provider/CourseManagementGroupProvider.java 1689 | Log: 1690 | SAK-12602 Fix logic when a user has multiple roles in a section 1691 | 1692 | ---------------------- 1693 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1694 | You can modify how you receive notifications at My Workspace > Preferences. 1695 | 1696 | 1697 | 1698 | From cwen@iupui.edu Thu Jan 3 16:34:40 2008 1699 | Return-Path: 1700 | Received: from murder (mail.umich.edu [141.211.14.34]) 1701 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1702 | Thu, 03 Jan 2008 16:34:40 -0500 1703 | X-Sieve: CMU Sieve 2.3 1704 | Received: from murder ([unix socket]) 1705 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1706 | Thu, 03 Jan 2008 16:34:40 -0500 1707 | Received: from icestorm.mr.itd.umich.edu (icestorm.mr.itd.umich.edu [141.211.93.149]) 1708 | by chaos.mail.umich.edu () with ESMTP id m03LYdY1029538; 1709 | Thu, 3 Jan 2008 16:34:39 -0500 1710 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1711 | BY icestorm.mr.itd.umich.edu ID 477D54EA.13F34.26602 ; 1712 | 3 Jan 2008 16:34:36 -0500 1713 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1714 | by paploo.uhi.ac.uk (Postfix) with ESMTP id CC710ADC79; 1715 | Thu, 3 Jan 2008 21:34:29 +0000 (GMT) 1716 | Message-ID: <200801032133.m03LX3gG005191@nakamura.uits.iupui.edu> 1717 | Mime-Version: 1.0 1718 | Content-Transfer-Encoding: 7bit 1719 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1720 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 611 1721 | for ; 1722 | Thu, 3 Jan 2008 21:34:08 +0000 (GMT) 1723 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1724 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 43C4242B55 1725 | for ; Thu, 3 Jan 2008 21:34:12 +0000 (GMT) 1726 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1727 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03LX3Vb005193 1728 | for ; Thu, 3 Jan 2008 16:33:03 -0500 1729 | Received: (from apache@localhost) 1730 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03LX3gG005191 1731 | for source@collab.sakaiproject.org; Thu, 3 Jan 2008 16:33:03 -0500 1732 | Date: Thu, 3 Jan 2008 16:33:03 -0500 1733 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f 1734 | To: source@collab.sakaiproject.org 1735 | From: cwen@iupui.edu 1736 | Subject: [sakai] svn commit: r39744 - oncourse/branches/oncourse_OPC_122007 1737 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1738 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1739 | Content-Type: text/plain; charset=UTF-8 1740 | X-DSPAM-Result: Innocent 1741 | X-DSPAM-Processed: Thu Jan 3 16:34:40 2008 1742 | X-DSPAM-Confidence: 0.9846 1743 | X-DSPAM-Probability: 0.0000 1744 | 1745 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39744 1746 | 1747 | Author: cwen@iupui.edu 1748 | Date: 2008-01-03 16:33:02 -0500 (Thu, 03 Jan 2008) 1749 | New Revision: 39744 1750 | 1751 | Modified: 1752 | oncourse/branches/oncourse_OPC_122007/ 1753 | oncourse/branches/oncourse_OPC_122007/.externals 1754 | Log: 1755 | update external for GB. 1756 | 1757 | ---------------------- 1758 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1759 | You can modify how you receive notifications at My Workspace > Preferences. 1760 | 1761 | 1762 | 1763 | From cwen@iupui.edu Thu Jan 3 16:29:07 2008 1764 | Return-Path: 1765 | Received: from murder (mail.umich.edu [141.211.14.46]) 1766 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1767 | Thu, 03 Jan 2008 16:29:07 -0500 1768 | X-Sieve: CMU Sieve 2.3 1769 | Received: from murder ([unix socket]) 1770 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1771 | Thu, 03 Jan 2008 16:29:07 -0500 1772 | Received: from galaxyquest.mr.itd.umich.edu (galaxyquest.mr.itd.umich.edu [141.211.93.145]) 1773 | by fan.mail.umich.edu () with ESMTP id m03LT6uw027749; 1774 | Thu, 3 Jan 2008 16:29:06 -0500 1775 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1776 | BY galaxyquest.mr.itd.umich.edu ID 477D5397.E161D.20326 ; 1777 | 3 Jan 2008 16:28:58 -0500 1778 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1779 | by paploo.uhi.ac.uk (Postfix) with ESMTP id DEC65ADC79; 1780 | Thu, 3 Jan 2008 21:28:52 +0000 (GMT) 1781 | Message-ID: <200801032127.m03LRUqH005177@nakamura.uits.iupui.edu> 1782 | Mime-Version: 1.0 1783 | Content-Transfer-Encoding: 7bit 1784 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1785 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 917 1786 | for ; 1787 | Thu, 3 Jan 2008 21:28:39 +0000 (GMT) 1788 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1789 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 1FBB042B30 1790 | for ; Thu, 3 Jan 2008 21:28:38 +0000 (GMT) 1791 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1792 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03LRUk4005179 1793 | for ; Thu, 3 Jan 2008 16:27:30 -0500 1794 | Received: (from apache@localhost) 1795 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03LRUqH005177 1796 | for source@collab.sakaiproject.org; Thu, 3 Jan 2008 16:27:30 -0500 1797 | Date: Thu, 3 Jan 2008 16:27:30 -0500 1798 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f 1799 | To: source@collab.sakaiproject.org 1800 | From: cwen@iupui.edu 1801 | Subject: [sakai] svn commit: r39743 - gradebook/branches/oncourse_2-4-2/app/ui/src/java/org/sakaiproject/tool/gradebook/ui 1802 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1803 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1804 | Content-Type: text/plain; charset=UTF-8 1805 | X-DSPAM-Result: Innocent 1806 | X-DSPAM-Processed: Thu Jan 3 16:29:07 2008 1807 | X-DSPAM-Confidence: 0.8509 1808 | X-DSPAM-Probability: 0.0000 1809 | 1810 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39743 1811 | 1812 | Author: cwen@iupui.edu 1813 | Date: 2008-01-03 16:27:29 -0500 (Thu, 03 Jan 2008) 1814 | New Revision: 39743 1815 | 1816 | Modified: 1817 | gradebook/branches/oncourse_2-4-2/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/RosterBean.java 1818 | Log: 1819 | svn merge -c 39403 https://source.sakaiproject.org/svn/gradebook/trunk 1820 | U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/RosterBean.java 1821 | 1822 | svn log -r 39403 https://source.sakaiproject.org/svn/gradebook/trunk 1823 | ------------------------------------------------------------------------ 1824 | r39403 | wagnermr@iupui.edu | 2007-12-17 17:11:08 -0500 (Mon, 17 Dec 2007) | 3 lines 1825 | 1826 | SAK-12504 1827 | http://jira.sakaiproject.org/jira/browse/SAK-12504 1828 | Viewing "All Grades" page as a TA with grader permissions causes stack trace 1829 | ------------------------------------------------------------------------ 1830 | 1831 | 1832 | ---------------------- 1833 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1834 | You can modify how you receive notifications at My Workspace > Preferences. 1835 | 1836 | 1837 | 1838 | From cwen@iupui.edu Thu Jan 3 16:23:48 2008 1839 | Return-Path: 1840 | Received: from murder (mail.umich.edu [141.211.14.91]) 1841 | by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA; 1842 | Thu, 03 Jan 2008 16:23:48 -0500 1843 | X-Sieve: CMU Sieve 2.3 1844 | Received: from murder ([unix socket]) 1845 | by mail.umich.edu (Cyrus v2.2.12) with LMTPA; 1846 | Thu, 03 Jan 2008 16:23:48 -0500 1847 | Received: from salemslot.mr.itd.umich.edu (salemslot.mr.itd.umich.edu [141.211.14.58]) 1848 | by jacknife.mail.umich.edu () with ESMTP id m03LNlf0002115; 1849 | Thu, 3 Jan 2008 16:23:47 -0500 1850 | Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184]) 1851 | BY salemslot.mr.itd.umich.edu ID 477D525E.1448.30389 ; 1852 | 3 Jan 2008 16:23:44 -0500 1853 | Received: from paploo.uhi.ac.uk (localhost [127.0.0.1]) 1854 | by paploo.uhi.ac.uk (Postfix) with ESMTP id 9D005B9D06; 1855 | Thu, 3 Jan 2008 21:23:38 +0000 (GMT) 1856 | Message-ID: <200801032122.m03LMFo4005148@nakamura.uits.iupui.edu> 1857 | Mime-Version: 1.0 1858 | Content-Transfer-Encoding: 7bit 1859 | Received: from prod.collab.uhi.ac.uk ([194.35.219.182]) 1860 | by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 6 1861 | for ; 1862 | Thu, 3 Jan 2008 21:23:24 +0000 (GMT) 1863 | Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122]) 1864 | by shmi.uhi.ac.uk (Postfix) with ESMTP id 3535542B69 1865 | for ; Thu, 3 Jan 2008 21:23:24 +0000 (GMT) 1866 | Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1]) 1867 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03LMFtT005150 1868 | for ; Thu, 3 Jan 2008 16:22:15 -0500 1869 | Received: (from apache@localhost) 1870 | by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03LMFo4005148 1871 | for source@collab.sakaiproject.org; Thu, 3 Jan 2008 16:22:15 -0500 1872 | Date: Thu, 3 Jan 2008 16:22:15 -0500 1873 | X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f 1874 | To: source@collab.sakaiproject.org 1875 | From: cwen@iupui.edu 1876 | Subject: [sakai] svn commit: r39742 - gradebook/branches/oncourse_2-4-2/app/ui/src/java/org/sakaiproject/tool/gradebook/ui 1877 | X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8 1878 | X-Content-Type-Message-Body: text/plain; charset=UTF-8 1879 | Content-Type: text/plain; charset=UTF-8 1880 | X-DSPAM-Result: Innocent 1881 | X-DSPAM-Processed: Thu Jan 3 16:23:48 2008 1882 | X-DSPAM-Confidence: 0.9907 1883 | X-DSPAM-Probability: 0.0000 1884 | 1885 | Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39742 1886 | 1887 | Author: cwen@iupui.edu 1888 | Date: 2008-01-03 16:22:14 -0500 (Thu, 03 Jan 2008) 1889 | New Revision: 39742 1890 | 1891 | Modified: 1892 | gradebook/branches/oncourse_2-4-2/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/RosterBean.java 1893 | Log: 1894 | svn merge -c 35014 https://source.sakaiproject.org/svn/gradebook/trunk 1895 | U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/RosterBean.java 1896 | 1897 | svn log -r 35014 https://source.sakaiproject.org/svn/gradebook/trunk 1898 | ------------------------------------------------------------------------ 1899 | r35014 | wagnermr@iupui.edu | 2007-09-12 16:17:59 -0400 (Wed, 12 Sep 2007) | 3 lines 1900 | 1901 | SAK-11458 1902 | http://bugs.sakaiproject.org/jira/browse/SAK-11458 1903 | Course grade does not appear on "All Grades" page if no categories in gb 1904 | ------------------------------------------------------------------------ 1905 | 1906 | 1907 | ---------------------- 1908 | This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site. 1909 | You can modify how you receive notifications at My Workspace > Preferences. 1910 | 1911 | -------------------------------------------------------------------------------- /exercise8_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 8.3: Rewrite the guardian code in the above example without two if 4 | statements. Instead, use a compound logical expression using the and logical 5 | operator with a single if statement. 6 | 7 | Python for Everybody: Exploring Data Using Python 3 8 | by Charles R. Severance 9 | """ 10 | 11 | 12 | fhand = open('exercise8_2.txt') 13 | for line in fhand: 14 | words = line.split() 15 | if len(words) < 3 or words[0] != 'From': 16 | continue 17 | print(words[2]) 18 | -------------------------------------------------------------------------------- /exercise8_4.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 8.4: Download a copy of the file from www.py4e.com/code3/romeo.txt 4 | 5 | Write a program to open the file romeo.txt and read it line by line. For each 6 | line, split the line into a list of words using the split function. 7 | 8 | For each word, check to see if the word is already in a list. If the word is 9 | not in the list, add it to the list. 10 | 11 | When the program completes, sort and print the resulting words in alphabetical 12 | order. 13 | 14 | ['Arise', 'But', 'It', 'Juliet', 'Who', 'already', 'and', 'breaks', 'east', 15 | 'envious', 'fair', 'grief', 'is', 'kill', 'light', 'moon', 'pale', 'sick', 16 | 'soft', 'sun', 'the', 'through', 'what', 'window', 'with', 'yonder'] 17 | 18 | Python for Everybody: Exploring Data Using Python 3 19 | by Charles R. Severance 20 | """ 21 | 22 | my_list = [] 23 | fhand = open('romeo.txt') 24 | for line in fhand: 25 | words = line.split() # Splits line into array of words 26 | for word in words: 27 | if word in my_list: 28 | continue # Discards duplicates 29 | my_list.append(word) # Updates the list 30 | print(sorted(my_list)) # Alphabetical order 31 | -------------------------------------------------------------------------------- /exercise8_5.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 8.5: Write a program to read through the mail box data and when you 4 | find the line that starts with "From", you will split the line into words 5 | using the split function. We are interested in who sent the message, which is 6 | second word on the From line. 7 | 8 | From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 9 | 10 | You will parse the From line and print out the second word for each From line, 11 | then you will also count the number of From (not From:) lines and print out a 12 | count at the end. 13 | 14 | This is a good sample output with a few lines removed: 15 | 16 | python fromcount.py 17 | Enter a file name: mbox-short.txt 18 | stephen.marquard@uct.ac.za 19 | louis@media.berkeley.edu 20 | zqian@umich.edu 21 | 22 | [... some output removed...] 23 | 24 | ray@media.berkeley.edu 25 | cwen@iupui.edu 26 | cwen@iupui.edu 27 | cwen@iupui.edu 28 | There were 27 lines in the file with From as the first word 29 | 30 | Python for Everybody: Exploring Data Using Python 3 31 | by Charles R. Severance 32 | """ 33 | 34 | 35 | fhand = open('mbox-short.txt') 36 | count = 0 37 | for line in fhand: 38 | words = line.split() 39 | if len(words) < 3 or words[0] != 'From': 40 | continue 41 | print(words[1]) 42 | count += 1 43 | print('There were %d lines in the file with From as the first word' % count) 44 | -------------------------------------------------------------------------------- /exercise8_6.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 8.6: Rewrite the program that prompts the user for a list of numbers 4 | and prints out the maximum and minimum of the numbers at the end when the user 5 | enters "done". Write the program to store the numbers the user enters in a list 6 | and use the max() and min() functions to compute the maximum and minimum 7 | numbers after the loop completes. 8 | 9 | Enter a number: 6 10 | Enter a number: 2 11 | Enter a number: 9 12 | Enter a number: 3 13 | Enter a number: 5 14 | Enter a number: done 15 | Maximum: 9.0 16 | Minimum: 2.0 17 | 18 | Python for Everybody: Exploring Data Using Python 3 19 | by Charles R. Severance 20 | """ 21 | 22 | 23 | my_list = [] # Initialize array 24 | while True: 25 | number = 0.0 26 | input_number = input('Enter a number: ') 27 | if input_number == 'done': 28 | break 29 | 30 | try: 31 | number = float(input_number) 32 | except ValueError: 33 | print('Invalid input') 34 | quit() 35 | 36 | my_list.append(input_number) 37 | 38 | if my_list: 39 | print('Maximum: ', max(my_list) or None) 40 | print('Minimum: ', min(my_list) or None) 41 | -------------------------------------------------------------------------------- /exercise9_1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 9.1: Write a program that reads the words in words.txt and stores 4 | them as keys in a dictionary. Download a copy of the file from 5 | https://www.py4e.com/code3/words.txt. It doesn't matter what the values are. 6 | Then use the 'in' operator as a fast way to check whether a string is in the 7 | dictionary. 8 | 9 | Python for Everybody: Exploring Data Using Python 3 10 | by Charles R. Severance 11 | """ 12 | 13 | 14 | count = 0 15 | dictionary_words = dict() # Initializes the dictionary 16 | fhand = open('words.txt') 17 | for line in fhand: 18 | words = line.split() 19 | for word in words: 20 | count += 1 21 | if word in dictionary_words: 22 | continue # Discards duplicates 23 | dictionary_words[word] = count # Value is first time word appears 24 | 25 | if 'Python' in dictionary_words: 26 | print('True') 27 | else: 28 | print('False') 29 | -------------------------------------------------------------------------------- /exercise9_2.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 9.2: Write a program that categorizes each mail message by which day 4 | of the week the commit was done. To do this, look for lines that start with 5 | "From", then look for the third word and keep a running count of each of the 6 | days of the week. At the end of the program, print out the contents of your 7 | dictionary (order does not matter). 8 | 9 | Sample Line: From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 10 | 11 | Sample Execution: 12 | python dow.py 13 | Enter a file name: mbox-short.txt 14 | {'Fri': 20, 'Thu': 6, 'Sat': 1} 15 | 16 | Python for Everybody: Exploring Data Using Python 3 17 | by Charles R. Severance 18 | """ 19 | 20 | dictionary_days = dict() # Initializes the dictionary 21 | fname = input('Enter a file name: ') 22 | try: 23 | fhand = open(fname) 24 | except FileNotFoundError: 25 | print('File cannot be opened:', fname) 26 | exit() 27 | 28 | for line in fhand: 29 | words = line.split() 30 | if len(words) < 3 or words[0] != 'From': 31 | continue 32 | else: 33 | if words[2] not in dictionary_days: 34 | dictionary_days[words[2]] = 1 # First entry 35 | else: 36 | dictionary_days[words[2]] += 1 # Additional counts 37 | 38 | print(dictionary_days) 39 | -------------------------------------------------------------------------------- /exercise9_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 9.3: Write a program to read through a mail log, build a histogram 4 | using a dictionary to count how many messages have come from each email 5 | address, and print the dictionary. 6 | 7 | Enter file name: mbox-short.txt 8 | {'stephen.marquard@uct.ac.za': 2, 'louis@media.berkeley.edu': 3, 9 | 'zqian@umich.edu': 4, 'rjlowe@iupui.edu': 2, 'cwen@iupui.edu': 5, 10 | 'gsilver@umich.edu': 3, 'wagnermr@iupui.edu': 1, 11 | 'antranig@caret.cam.ac.uk': 1, 'gopal.ramasammycook@gmail.com': 1, 12 | 'david.horwitz@uct.ac.za': 4, 'ray@media.berkeley.edu': 1} 13 | 14 | Python for Everybody: Exploring Data Using Python 3 15 | by Charles R. Severance 16 | """ 17 | 18 | 19 | dictionary_addresses = dict() # Initializes the dictionary 20 | fname = input('Enter file name: ') 21 | try: 22 | fhand = open(fname) 23 | except FileNotFoundError: 24 | print('File cannot be opened:', fname) 25 | exit() 26 | 27 | for line in fhand: 28 | words = line.split() 29 | if len(words) < 2 or words[0] != 'From': 30 | continue 31 | else: 32 | if words[1] not in dictionary_addresses: 33 | dictionary_addresses[words[1]] = 1 # First entry 34 | else: 35 | dictionary_addresses[words[1]] += 1 # Additional counts 36 | 37 | print(dictionary_addresses) 38 | -------------------------------------------------------------------------------- /exercise9_4.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 9.4: Add code to the above program to figure out who has the most 4 | messages in the file. 5 | 6 | After all the data has been read and the dictionary has been created, look 7 | through the dictionary using a maximum loop (see Section [maximumloop]) to 8 | find who has the most messages and print how many messages the person has. 9 | 10 | Enter a file name: mbox-short.txt 11 | cwen@iupui.ed 5 12 | 13 | Enter a file name: mbox.txt 14 | zqian@umich.edu 195 15 | 16 | Python for Everybody: Exploring Data Using Python 3 17 | by Charles R. Severance 18 | """ 19 | 20 | 21 | dictionary_addresses = dict() # Initialize variables 22 | maximum = 0 23 | maximum_address = '' 24 | 25 | fname = input('Enter file name: ') 26 | try: 27 | fhand = open(fname) 28 | except FileNotFoundError: 29 | print('File cannot be opened:', fname) 30 | quit() 31 | 32 | for line in fhand: 33 | words = line.split() 34 | if len(words) < 2 or words[0] != 'From': 35 | continue 36 | 37 | if words[1] not in dictionary_addresses: 38 | dictionary_addresses[words[1]] = 1 # First entry 39 | else: 40 | dictionary_addresses[words[1]] += 1 # Additional counts 41 | 42 | for address in dictionary_addresses: 43 | if dictionary_addresses[address] > maximum: # Checks if new maximum 44 | # Update the maximum if needed 45 | maximum = dictionary_addresses[address] 46 | # Stors the address of maximum 47 | maximum_address = address 48 | 49 | print(maximum_address, maximum) 50 | -------------------------------------------------------------------------------- /exercise9_5.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """ 3 | Exercise 9.5: This program records the domain name (instead of the address) 4 | where the message was sent from instead of who the mail came from (i.e., the 5 | whole email address). At the end of the program, print out the contents of 6 | your dictionary. 7 | 8 | python schoolcount.py 9 | Enter a file name: mbox-short.txt 10 | ['media.berkeley.edu': 4, 'uct.ac.za': 6, 'umich.edu': 7, 'gmail.com': 1, 11 | 'caret.cam.ac.uk': 1, 'iupui.edu': 8} 12 | 13 | Python for Everybody: Exploring Data Using Python 3 14 | by Charles R. Severance 15 | """ 16 | 17 | dictionary_domains = dict() # Initialize variables 18 | 19 | fname = input('Enter file name: ') 20 | try: 21 | fhand = open(fname) 22 | except FileNotFoundError: 23 | print('File cannot be opened:', fname) 24 | quit() 25 | 26 | for line in fhand: 27 | words = line.split() 28 | if len(words) < 2 or words[0] != 'From': 29 | continue 30 | else: 31 | atpos = words[1].find('@') # Position of '@' 32 | domain = words[1][atpos + 1:] # Store characters after '@' 33 | if domain not in dictionary_domains: 34 | dictionary_domains[domain] = 1 # First entry 35 | else: 36 | dictionary_domains[domain] += 1 # Additional counts 37 | 38 | print(dictionary_domains) 39 | --------------------------------------------------------------------------------