Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9252831
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T11:03:22+00:00 2026-06-18T11:03:22+00:00

I am trying to use the pyDatalog.load() method to load a small pyDatalog program.

  • 0

I am trying to use the pyDatalog.load() method to load a small pyDatalog program. For example, I am loading the factorial sample from https://sites.google.com/site/pydatalog/

from pyDatalog import pyDatalog
pyDatalog.create_atoms('factorial, N, F') # gives datalog capability to these words

def run_program():

    N = pyDatalog.Variable()
    F = pyDatalog.Variable()
    file_in = open("sample_datalog_program.dl", 'r')
    mc = file_in.read()
    print mc
    @pyDatalog.program()
    def _(): # the function name is ignored
        pyDatalog.load(mc)
        #pyDatalog.load("""
        #+ (factorial[1]==1)
        #(factorial[N] == F) <= (N > 1) & (F == N*factorial[N-1])
        #""")
        print(pyDatalog.ask('factorial[4]==F'))
    file_in.close()
    pass


if __name__ == "__main__":
    run_program()

the file sample_datalog_program.dl contains the following:

"""
+ (factorial[1]==1)
(factorial[N] == F) <= (N > 1) & (F == N*factorial[N-1])
"""

What am I doing wrong? When I replace the line pyDatalog.load(mc) by the next 4 commented lines it works fine.

The error I get is:

    /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/python2.7    run_datalog_program.py
pyDatalog version 0.12.0
Traceback (most recent call last):
  File "run_datalog_program.py", line 25, in <module>
    run_program()
  File "run_datalog_program.py", line 11, in run_program
    @pyDatalog.program()
  File "/usr/local/lib/python2.7/site-packages/pyDatalog/pyParser.py", line 191, in   add_program
    load(source_code, newglobals, defined, function=func_name)
  File "/usr/local/lib/python2.7/site-packages/pyDatalog/pyParser.py", line 154, in load
six.exec_(code, newglobals)
  File "/usr/local/lib/python2.7/site-packages/six.py", line 308, in exec_
    exec("""exec code in globs, locs""")
  File "<string>", line 1, in <module>
  File "_", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/pyDatalog/pyDatalog.py", line 115, in load
    return pyParser.load(code)
  File "/usr/local/lib/python2.7/site-packages/pyDatalog/pyParser.py", line 133, in load
    spaces = r.match(line).group()
TypeError: expected string or buffer
"""
+ (factorial[1]==1)
(factorial[N] == F) <= (N > 1) & (F == N*factorial[N-1])
"""

Process finished with exit code 1

Thank you!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T11:03:24+00:00Added an answer on June 18, 2026 at 11:03 am

    You should not mix the pyDatalog.load() API and the in-line API. See Dynamic Datalog statements (at bottom of page)

    Here is how you could write your program:

    from pyDatalog import pyDatalog
    
    def run_program():
    
        file_in = open("sample_datalog_program.dl", 'r')
        mc = file_in.read()
        print mc
        pyDatalog.load(mc)
        file_in.close()
        print(pyDatalog.ask('factorial[3]==N'))
    
    if __name__ == "__main__":
        run_program()
    

    The code in sample_datalog_program.dl should be (without triple quotes):

    + (factorial[1]==1)
    (factorial[N] == F) <= (N > 1) & (F == N*factorial[N-1])
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying use Places API from Google frmo a node.js server This is the
i'm trying use webview to load a image from sdcard i use this path
I am trying use Google Maps for my work; I have downloaded an example
I'm trying use mod_rewrite to rewrite URLs from the following: http://www.site.com/one-two-file.php to http://www.site.com/one/two/file.php The
Trying to use Powershell to script the removal of specific custom errors from an
I'm trying use Google APIs Client Library for Python to rename drive file, here
Trying to use the http://www.dinnermint.org/css/creating-triangles-in-css/ method to create an arrow _________________ \ \ \
I am trying use std::copy to copy from two different iterator. But during course
I'm trying use to selenium with firefox on CentOS from command line like this:
I'm trying use the Sum method in a lambda expression for a comparison, but

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.