Git Product home page Git Product logo

scramblewords.py's People

Contributors

kwurst avatar stoneyjackson avatar

Watchers

 avatar  avatar

Forkers

kwurst

scramblewords.py's Issues

Implement incident report

This was in v1.0. It was removed to simplify and focus the mission of scramble-words.py. However, I haven't been able to come up with an easy replacement using an external tool. So, maybe we should support this with a command-line option. For example

python scramble-words.py --yaml-report-file=filename < input-file

By default no report would be generated. But if specified it would write to filename, truncating it if it exists. If it cannot, it would print an error to standard error and exit with an error code.

Do not produce incident report

The incident report lists each word that was scrambled, the new scrambling, and where it is located in the file. There are other tools that can produce this information (e.g., diff), so we should not produce this information. Drop this functionality.

Move reporter and its functionality to a separate project

We should follow the principle of doing one thing and doing it well. Let's drop the reporter functionality and move that to a separate project. From the perspective of this project, we just need to delete the reporter functionality.

Add --no-adjacents option

This option would prevent two or more adjacent scrambled words. This would allow wdiff to produce better results. Right now wdiff groups adjacent scrambles as a single difference. If we prevent adjacent scrambles, wdiff will distinguish between them.

Rename the project

Brainstorm for new names:

  • twiddler
  • scrambler
  • scramble-random-words
  • twiddle-random-words
  • word-scrambler
  • word-twiddler
  • word-mangler
  • file-mangler
  • stream-mangler
  • munger
  • stream-munger
  • word-munger

Analysis

  • Not munging
  • Not twiddling (twisting)
  • Not word-shuffler - sounds like we are reordering words
  • word-scrambler for the win!

Remove __init__.py

Used to make the current directory a python package so that modules can import other modules within that directory. Not needed since we only have one module.

Add "Ignore" suggestion

Users may want to "Ignore" the repository on GitHub before running report.py. Ignoring will prevent the user from receiving a deluge of email notifications.

Also, when running the activity, the instructor may want to advise students to "Ignore" the repository. Or at least, not watch the entire repository. That way they only receive notifications about issues that they are involved with.

Notes to this this effect should be added to README.

Take input from standard input

Currently an input file is given as a command-line argument. It would be better if the primary input was given on stdin. This is more traditional in a pipes-and-filter architecture and improved interoperability between other command line applications.

Will the user manually commit/push the twiddled file to GitHub?

Will twiddle.py be run entirely on the local machine, and then the user creates a repository, commits, and pushed the twiddled file?

I think this makes the most sense, but I'm asking because I thinking of how this interfaces with report.py. I guess the repository will already exist with the twiddled file in it when report.py is run to insert all the incidents into the issue tracker.

Rename project (again)

The current name is word-scrambler. But the command is scramble-word.py. Let's bring these into alignment. The command is probably better named. So let's make the project name the same as the command name.

GitHub API rate limiting is a challenge

I'm having problems with the GitHub API rate limit. Running it on LICENSE (GPL3) at 10% produces about 460 issues, and I can't get them all added before hitting the abuse limit. I'm going to try it on 5% next (about 230) and see if they get added...

Produce output to standard output

Currently we create an output file based on the input filename. This is bad. The file might already exist. And our user may prefer to put the output someplace else, including piping the output into another command. So let's print the output to standard output.

report.py

So, here is how I am thinking that report.py will work:

python report.py namespace/repositoryname github-username incident-file

The program will ask for the password interactively with no echo.

Comments? Other command line parameters?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.