├── .gitattributes ├── .gitignore ├── .gitmodules ├── Histograms.ipynb ├── README.md ├── agreement_environment.py ├── data_readers ├── __init__.py ├── brown.py ├── linzen.py ├── marvin_linzen.py └── wsj.py ├── evaluate_model.py ├── histograms_by_pos.py ├── language_modeling.py ├── linzen_lm.py ├── linzen_prediction.json ├── linzen_replication.py ├── marvin_linzen_replication.py ├── penn_treebank_eval.py ├── predict_trees.py ├── predictions ├── linzen-swap │ ├── wsj-23-naive │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt │ └── wsj-23 │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt ├── linzen │ ├── all_results.txt │ ├── wsj-10-naive │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt │ ├── wsj-10-noswap │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt │ ├── wsj-10 │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt │ ├── wsj-23-naive │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt │ ├── wsj-23-noswap │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt │ ├── wsj-23 │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt │ └── wsj-nltk │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt ├── wsj-swap │ ├── wsj-10 │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt │ ├── wsj-23-naive │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt │ └── wsj-23 │ │ ├── parses.gld │ │ ├── parses.tst │ │ └── results.txt └── wsj │ └── wsj-10 │ ├── parses.gld │ ├── parses.tst │ └── results.txt ├── predictor.py ├── profiler.py ├── saved_models ├── brown.th ├── lstm-linzen-15.th ├── lstm-linzen-class.th ├── model_descriptions.txt ├── stack-brown-swap.th ├── stack-brown.th ├── stack-linzen-class-nopushpop.th ├── stack-linzen-class-pop.th ├── stack-linzen-class-push.th ├── stack-linzen-class.th ├── stack-linzen-swap.th ├── stack-linzen.th ├── stack-wsj-swap.th ├── stack-wsj.th ├── vocabulary-brown │ ├── labels.txt │ ├── non_padded_namespaces.txt │ └── tokens.txt ├── vocabulary-linzen │ ├── labels.txt │ ├── non_padded_namespaces.txt │ └── tokens.txt └── vocabulary-wsj │ ├── labels.txt │ ├── non_padded_namespaces.txt │ └── tokens.txt ├── simple_rnn.py ├── simple_rnn_LM.py ├── stack_rnn.py └── stack_rnn_LM.py /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/.gitmodules -------------------------------------------------------------------------------- /Histograms.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/Histograms.ipynb -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/README.md -------------------------------------------------------------------------------- /agreement_environment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/agreement_environment.py -------------------------------------------------------------------------------- /data_readers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data_readers/brown.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/data_readers/brown.py -------------------------------------------------------------------------------- /data_readers/linzen.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/data_readers/linzen.py -------------------------------------------------------------------------------- /data_readers/marvin_linzen.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/data_readers/marvin_linzen.py -------------------------------------------------------------------------------- /data_readers/wsj.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/data_readers/wsj.py -------------------------------------------------------------------------------- /evaluate_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/evaluate_model.py -------------------------------------------------------------------------------- /histograms_by_pos.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/histograms_by_pos.py -------------------------------------------------------------------------------- /language_modeling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/language_modeling.py -------------------------------------------------------------------------------- /linzen_lm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/linzen_lm.py -------------------------------------------------------------------------------- /linzen_prediction.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/linzen_prediction.json -------------------------------------------------------------------------------- /linzen_replication.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/linzen_replication.py -------------------------------------------------------------------------------- /marvin_linzen_replication.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/marvin_linzen_replication.py -------------------------------------------------------------------------------- /penn_treebank_eval.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/penn_treebank_eval.py -------------------------------------------------------------------------------- /predict_trees.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predict_trees.py -------------------------------------------------------------------------------- /predictions/linzen-swap/wsj-23-naive/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen-swap/wsj-23-naive/parses.gld -------------------------------------------------------------------------------- /predictions/linzen-swap/wsj-23-naive/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen-swap/wsj-23-naive/parses.tst -------------------------------------------------------------------------------- /predictions/linzen-swap/wsj-23-naive/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen-swap/wsj-23-naive/results.txt -------------------------------------------------------------------------------- /predictions/linzen-swap/wsj-23/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen-swap/wsj-23/parses.gld -------------------------------------------------------------------------------- /predictions/linzen-swap/wsj-23/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen-swap/wsj-23/parses.tst -------------------------------------------------------------------------------- /predictions/linzen-swap/wsj-23/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen-swap/wsj-23/results.txt -------------------------------------------------------------------------------- /predictions/linzen/all_results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/all_results.txt -------------------------------------------------------------------------------- /predictions/linzen/wsj-10-naive/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-10-naive/parses.gld -------------------------------------------------------------------------------- /predictions/linzen/wsj-10-naive/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-10-naive/parses.tst -------------------------------------------------------------------------------- /predictions/linzen/wsj-10-naive/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-10-naive/results.txt -------------------------------------------------------------------------------- /predictions/linzen/wsj-10-noswap/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-10-noswap/parses.gld -------------------------------------------------------------------------------- /predictions/linzen/wsj-10-noswap/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-10-noswap/parses.tst -------------------------------------------------------------------------------- /predictions/linzen/wsj-10-noswap/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-10-noswap/results.txt -------------------------------------------------------------------------------- /predictions/linzen/wsj-10/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-10/parses.gld -------------------------------------------------------------------------------- /predictions/linzen/wsj-10/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-10/parses.tst -------------------------------------------------------------------------------- /predictions/linzen/wsj-10/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-10/results.txt -------------------------------------------------------------------------------- /predictions/linzen/wsj-23-naive/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-23-naive/parses.gld -------------------------------------------------------------------------------- /predictions/linzen/wsj-23-naive/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-23-naive/parses.tst -------------------------------------------------------------------------------- /predictions/linzen/wsj-23-naive/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-23-naive/results.txt -------------------------------------------------------------------------------- /predictions/linzen/wsj-23-noswap/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-23-noswap/parses.gld -------------------------------------------------------------------------------- /predictions/linzen/wsj-23-noswap/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-23-noswap/parses.tst -------------------------------------------------------------------------------- /predictions/linzen/wsj-23-noswap/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-23-noswap/results.txt -------------------------------------------------------------------------------- /predictions/linzen/wsj-23/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-23/parses.gld -------------------------------------------------------------------------------- /predictions/linzen/wsj-23/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-23/parses.tst -------------------------------------------------------------------------------- /predictions/linzen/wsj-23/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-23/results.txt -------------------------------------------------------------------------------- /predictions/linzen/wsj-nltk/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-nltk/parses.gld -------------------------------------------------------------------------------- /predictions/linzen/wsj-nltk/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-nltk/parses.tst -------------------------------------------------------------------------------- /predictions/linzen/wsj-nltk/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/linzen/wsj-nltk/results.txt -------------------------------------------------------------------------------- /predictions/wsj-swap/wsj-10/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj-swap/wsj-10/parses.gld -------------------------------------------------------------------------------- /predictions/wsj-swap/wsj-10/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj-swap/wsj-10/parses.tst -------------------------------------------------------------------------------- /predictions/wsj-swap/wsj-10/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj-swap/wsj-10/results.txt -------------------------------------------------------------------------------- /predictions/wsj-swap/wsj-23-naive/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj-swap/wsj-23-naive/parses.gld -------------------------------------------------------------------------------- /predictions/wsj-swap/wsj-23-naive/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj-swap/wsj-23-naive/parses.tst -------------------------------------------------------------------------------- /predictions/wsj-swap/wsj-23-naive/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj-swap/wsj-23-naive/results.txt -------------------------------------------------------------------------------- /predictions/wsj-swap/wsj-23/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj-swap/wsj-23/parses.gld -------------------------------------------------------------------------------- /predictions/wsj-swap/wsj-23/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj-swap/wsj-23/parses.tst -------------------------------------------------------------------------------- /predictions/wsj-swap/wsj-23/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj-swap/wsj-23/results.txt -------------------------------------------------------------------------------- /predictions/wsj/wsj-10/parses.gld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj/wsj-10/parses.gld -------------------------------------------------------------------------------- /predictions/wsj/wsj-10/parses.tst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj/wsj-10/parses.tst -------------------------------------------------------------------------------- /predictions/wsj/wsj-10/results.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictions/wsj/wsj-10/results.txt -------------------------------------------------------------------------------- /predictor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/predictor.py -------------------------------------------------------------------------------- /profiler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/profiler.py -------------------------------------------------------------------------------- /saved_models/brown.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/brown.th -------------------------------------------------------------------------------- /saved_models/lstm-linzen-15.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/lstm-linzen-15.th -------------------------------------------------------------------------------- /saved_models/lstm-linzen-class.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/lstm-linzen-class.th -------------------------------------------------------------------------------- /saved_models/model_descriptions.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/model_descriptions.txt -------------------------------------------------------------------------------- /saved_models/stack-brown-swap.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-brown-swap.th -------------------------------------------------------------------------------- /saved_models/stack-brown.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-brown.th -------------------------------------------------------------------------------- /saved_models/stack-linzen-class-nopushpop.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-linzen-class-nopushpop.th -------------------------------------------------------------------------------- /saved_models/stack-linzen-class-pop.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-linzen-class-pop.th -------------------------------------------------------------------------------- /saved_models/stack-linzen-class-push.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-linzen-class-push.th -------------------------------------------------------------------------------- /saved_models/stack-linzen-class.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-linzen-class.th -------------------------------------------------------------------------------- /saved_models/stack-linzen-swap.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-linzen-swap.th -------------------------------------------------------------------------------- /saved_models/stack-linzen.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-linzen.th -------------------------------------------------------------------------------- /saved_models/stack-wsj-swap.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-wsj-swap.th -------------------------------------------------------------------------------- /saved_models/stack-wsj.th: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/stack-wsj.th -------------------------------------------------------------------------------- /saved_models/vocabulary-brown/labels.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/vocabulary-brown/labels.txt -------------------------------------------------------------------------------- /saved_models/vocabulary-brown/non_padded_namespaces.txt: -------------------------------------------------------------------------------- 1 | *tags 2 | *labels 3 | -------------------------------------------------------------------------------- /saved_models/vocabulary-brown/tokens.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/vocabulary-brown/tokens.txt -------------------------------------------------------------------------------- /saved_models/vocabulary-linzen/labels.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/vocabulary-linzen/labels.txt -------------------------------------------------------------------------------- /saved_models/vocabulary-linzen/non_padded_namespaces.txt: -------------------------------------------------------------------------------- 1 | *labels 2 | *tags 3 | -------------------------------------------------------------------------------- /saved_models/vocabulary-linzen/tokens.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/vocabulary-linzen/tokens.txt -------------------------------------------------------------------------------- /saved_models/vocabulary-wsj/labels.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/vocabulary-wsj/labels.txt -------------------------------------------------------------------------------- /saved_models/vocabulary-wsj/non_padded_namespaces.txt: -------------------------------------------------------------------------------- 1 | *tags 2 | *labels 3 | -------------------------------------------------------------------------------- /saved_models/vocabulary-wsj/tokens.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/saved_models/vocabulary-wsj/tokens.txt -------------------------------------------------------------------------------- /simple_rnn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/simple_rnn.py -------------------------------------------------------------------------------- /simple_rnn_LM.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/simple_rnn_LM.py -------------------------------------------------------------------------------- /stack_rnn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/stack_rnn.py -------------------------------------------------------------------------------- /stack_rnn_LM.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viking-sudo-rm/industrial-stacknns/HEAD/stack_rnn_LM.py --------------------------------------------------------------------------------