Giter Site home page Giter Site logo

amahabal / pyseqsee Goto Github PK

View Code? Open in Web Editor NEW
32.0 32.0 10.0 2.94 MB

Python framework for writing programs to solve complex problems not amenable to brute force. The architecture is a descendant of Douglas Hofstadter and Melanie Mitchell's Copycat architecture.

Home Page: http://amahabal.github.com/PySeqsee/

License: GNU General Public License v3.0

Python 100.00%

pyseqsee's People

Contributors

amahabal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyseqsee's Issues

Setup all windows of the UI

  • Button row at top;
  • Menu-bar;
  • Canvas;
  • Mechanism to have multi-tiled UI;
  • Commentry widget;
  • Driven through config files.

Start creating tests for the new Bongard domain

Keep adding tests, so that we know that the code there works (although we cannot of course test that the documentation that goes with it produces that code...).

I should also get into the habit of running tests before submitting. I just did, and a Seqsee test broke sometime in the last two days, that I cannot fix today.

Add the subcommand "farg test"

Currently, I use nosetests, and do the following:

nosetests --pdb tests/ tests/seqsee

It would be nice to have "farg test", and best if it picked up files in the current directory instead of installed files.

Add screenshots to documentation

For instance, the batch mode execution with the pie charts and histograms showing will be useful to someone looking at the docs but not running the system.

LTM Viewer

The LTM viewer was removed because of its many dependencies. Redo in pure tkinter.

Early exit when there are no more codelets

This would not occur in a "normal" app where routine codelets are continually being added, but I hit this in Bongard. Currently, there is a single codelet that is added once. After it is finished running, there is nothing left to happen: we should display a message and exit (as opposed to spinning wheels).

Create release for PyPi

To ease installation, PySeqsee should be released on PyPi. I've never done that before, so I'm hoping somebody could help out here.

Imports don't work

For me, it doesn't run correctly, and causes import errors when I run, for example python3 farg/apps/seqsee/run_seqsee.py --sequence="2 3 5 7 11", and outputs \

Traceback (most recent call last):
File "farg/apps/seqsee/run_seqsee.py", line 14, in
from farg.apps.seqsee.batch_ui import SeqseeBatchUI
ImportError: No module named 'farg'

However, it works perfectly when run using python3 -m farg.apps.seqsee.run_seqsee --sequence="2 3 5 7 11". Would it be okay if I modify the documentation to reflect this? I'm not aware of a simple way to change the folder structure to make it work.

History: add a GUI viewer

Currently, there is a way to inspect history. When the --history flag is passed in, we drop into a python interpreter that can show a few things.

It would be nice to have a UI for that, would make it quicker to inspect things.

Refactor LTM, allow selective saving

Currently, when saving an LTM, the last state within current run is saved. It would be better to be able to push only the salient items and edges out instead of the whole graph.

This requires some rejiggering (mostly of LTM manager, but tweaking other LTM related classes is also a good idea)

Remove perl version?

Do you want to keep the perl version as part of the project? Or could I delete it or move it to a separate branch?

History: track more events and parents

The history is only as good as it records things faithfully. Currently, a few events get added to the history, but there are more things that we can do with tracking.

One kind of thing we track is various counts: this could be a low hanging fruit for things to add to history (mindful of not overdoing it and slowing things down a lot).

Change name

The current name, PySeqsee, doesn't reflect what this project has become, a library for creating projects using Hofstadter's ideas. Could we rename it throughout to something that better represents what it does?

Add documentation on farg command line tool

Modify documentation to describe the following features

  • farg create <app> initializes an app
  • farg remove <app> deletes an app's folder

Also add setup.py install step to install documentation.

History: more kinds of inspections

Currently, passing in --history, we drop into a python shell where we can poke around.

At this point, the full history is available, and thus one may in principle to any sort of exploration. However, utilities can make this easier. The shell already has some predefined things (such as s() for a summary of history). But more utilities to explore more aspects of history could be useful.

These should be written in a way that can be used from the GUI as well, once it exists (see #35). The current items are easily adaptable to that view.

Make updating docs easier

@amahabal could you modify the github pages settings so the root directory for the website is docs/_build/html? That way the docs would auto update by just doing make html, without switching over to the gh-pages branch and modifying it.

Write basic controller

Controller is the VM that the UI talks to; implement "Take one step" and such. It will throw exceptions for such things as "Need more terms".

Failure to run after refactoring; Import.Error: No module named ltm.node

Before the refactoring of the code and renaming of Spike --> IncreaseActivation, the test code ran.

After the refactoring, running the test code produces a crash-on-startup.

Error report is below.


Christophers-MacBook-Air:PySeqsee honey$ pwd
/Users/honey/Dropbox/Python/PySeqsee

Christophers-MacBook-Air:PySeqsee honey$ ls
COPYING README data docs farg scrap setup.py tests

Christophers-MacBook-Air:PySeqsee honey$ python3 farg/apps/seqsee/run_seqsee.py --sequence="2 3 5 7 11"
Initialized a GUI run mode
Traceback (most recent call last):
File "farg/apps/seqsee/run_seqsee.py", line 68, in
SeqseeMain().main(sys.argv)
File "/Users/honey/Dropbox/Python/PySeqsee/farg/core/main.py", line 200, in main
self.ProcessFlags()
File "/Users/honey/Dropbox/Python/PySeqsee/farg/core/main.py", line 176, in ProcessFlags
self.run_mode = self.CreateRunModeInstance()
File "/Users/honey/Dropbox/Python/PySeqsee/farg/core/main.py", line 137, in CreateRunModeInstance
ui_class=self.gui_class)
File "/Users/honey/Dropbox/Python/PySeqsee/farg/core/run_mode/gui.py", line 20, in init
stopping_condition_fn=stopping_condition_fn)
File "/Users/honey/Dropbox/Python/PySeqsee/farg/apps/seqsee/gui/gui.py", line 47, in init
GUI.init(self, *_kwargs)
File "/Users/honey/Dropbox/Python/PySeqsee/farg/core/ui/gui/init.py", line 52, in init
stopping_condition=stopping_condition_fn)
File "/Users/honey/Dropbox/Python/PySeqsee/farg/apps/seqsee/controller.py", line 59, in init
Controller.init(self, *_args)
File "/Users/honey/Dropbox/Python/PySeqsee/farg/core/controller.py", line 73, in init
self.ltm = LTMManager.GetLTM(self.ltm_name)
File "/Users/honey/Dropbox/Python/PySeqsee/farg/core/ltm/manager.py", line 42, in GetLTM
ltm = LTMGraph(filename)
File "/Users/honey/Dropbox/Python/PySeqsee/farg/core/ltm/graph.py", line 41, in init
self._LoadNodes(up)
File "/Users/honey/Dropbox/Python/PySeqsee/farg/core/ltm/graph.py", line 56, in _LoadNodes
node = unpickler.load()
ImportError: No module named ltm.node

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.