Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code cleanup #42

Merged
merged 31 commits into from
Apr 3, 2019
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3711fd7
Update how the R version is retrieved.
grabear Oct 19, 2018
81d58a6
Updated environment root to hidden path <path>/.renv
grabear Oct 19, 2018
f2699a0
Removed commented replace_variables() function.
grabear Oct 19, 2018
6a6d788
Removed commented setup_scripts functions.
grabear Oct 19, 2018
417fa55
Updated readme with new default environment folder location.
grabear Oct 19, 2018
7295940
Removed remnants of a past merge conflict or redaction.
grabear Oct 19, 2018
c9cf5df
Merge branch 'dev-master' into grabear_update
grabear Feb 24, 2019
4db5752
Added the system_r_call function for getting information about the cu…
grabear Mar 11, 2019
54c95cc
Updated code that retrieves the current R version.
grabear Mar 11, 2019
64cf6fb
Updated code that retrieves the current base/recommended R packages.
grabear Mar 11, 2019
4feacb0
Removed f-strings for backwards compatibility.
grabear Mar 19, 2019
11b55cc
Fixed typo bug.
grabear Mar 19, 2019
c12d324
Fixed env. prompt bug.
grabear Mar 19, 2019
c30c410
Fixed absolute vs system R_path system link bug.
grabear Mar 21, 2019
c1b6da4
Fixed absolute vs system R_path system link bug.
grabear Mar 21, 2019
9d80afe
Fixed absolute vs system R_lib_path system link bug.
grabear Mar 21, 2019
3ca9319
Fixed absolute vs system R_lib_path system link bug#2.
grabear Mar 21, 2019
ce16521
Fixed absolute vs system R_lib_path system link bug#3.
grabear Mar 21, 2019
63749c7
Fixed recommended/base package link bug#1.
grabear Mar 21, 2019
bb65309
Fixed bug .Renviron bug #1 and added doc/share directories to config.
grabear Mar 21, 2019
e2b5f65
Added tests and doc to the environments directory.
grabear Mar 21, 2019
2600fbe
Potential fix for cookiecutter bug#1.
grabear Mar 21, 2019
88d46d6
Fix for cookiecutter bug#1.
grabear Mar 22, 2019
2b15bac
Fixed .Library/R_LIBS_SITE bug that changes the .libPath.
grabear Mar 22, 2019
4e9c8bd
Changed the python dependency to >=3.4.
grabear Mar 28, 2019
524c87b
Merge branch 'dev-master' into grabear_update
sdhutchins Mar 31, 2019
dfc5eb0
Update renv/cookies/posix/{{cookiecutter.dirname}}/.Renviron
grabear Mar 31, 2019
7a78a98
Santina-rev: Default case change.
grabear Mar 31, 2019
1207548
Update renv/core.py
grabear Mar 31, 2019
4778d31
Santina-rev: Simplified retrieval of env. variable.
grabear Mar 31, 2019
fc03f36
Update renv/core.py
grabear Mar 31, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ Once you have renv installed, you can create an R environment by a simple comman
renv -n myenv
```

An environment folder `myenv` will be created under `$HOME/beRi_envs`.
An environment folder `myenv` will be created under `$HOME/.renv`.

To activate the environment
```
cd $HOME\beRi_envs\myenv\bin
cd $HOME\.renv\myenv\bin
. ./activate
```

Expand Down
36 changes: 20 additions & 16 deletions renv/core.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from venv import EnvBuilder
import logging
import os
import shutil
import subprocess
import sys
import types
Expand Down Expand Up @@ -80,7 +79,7 @@ def create(self, env_dir, env_name=None):
if env_dir:
env_dir = os.path.abspath(env_dir)
else:
env_dir = utils.get_beri_path()
env_dir = utils.get_renv_path()
if env_name:
env_dir = os.path.join(env_dir, env_name)
else:
Expand Down Expand Up @@ -132,16 +131,33 @@ def ensure_directories(self, env_dir):
r_script = "Rscript"
context.R_exe = r_exe
context.R_script = r_script
context.R_version = os.path.split(self.r_path)[1]
if self.r_bin_path:
context.abs_R_exe = os.path.join(self.r_bin_path, r_exe)
context.abs_R_script = os.path.join(self.r_bin_path, r_script)
else:
context.abs_R_exe = os.path.join(self.r_path, "bin", r_exe)
context.abs_R_script = os.path.join(self.r_path, "bin", r_script)
context.abs_R_path = self.r_path
logging.info(f"System R(version): {self.r_path}({context.R_version})")

# Get the version of R
# Major Version
Rcmd = f"{context.abs_R_script} " \
f"-e \'R.version$major\'"
recommended_pkgs = subprocess.Popen([Rcmd], stderr=subprocess.PIPE, stdout=subprocess.PIPE,
shell=True, encoding='utf-8')
error = recommended_pkgs.stderr.readlines()
grabear marked this conversation as resolved.
Show resolved Hide resolved
major = recommended_pkgs.stdout.readlines()
recommended_pkgs.wait()
grabear marked this conversation as resolved.
Show resolved Hide resolved
# Minor Version
Rcmd = f"{context.abs_R_script} " \
f"-e \'R.version$minor\'"
recommended_pkgs = subprocess.Popen([Rcmd], stderr=subprocess.PIPE, stdout=subprocess.PIPE,
grabear marked this conversation as resolved.
Show resolved Hide resolved
shell=True, encoding='utf-8')
error = recommended_pkgs.stderr.readlines()
minor = recommended_pkgs.stdout.readlines()
recommended_pkgs.wait()
context.R_version = f"{major}.{minor}"
logging.info(f"System R(version): {self.r_path}({context.R_version})")
# Begin with R-Environment R files/paths
# Continue with system R files/paths
if sys.platform == 'win32': # Windows
Expand Down Expand Up @@ -393,15 +409,3 @@ def format_pkg_list(self, config_dict):
fmtd_list[list_name] = pkg_list_string

return fmtd_list

# def install_r(self):
# # New: install specified version of R in the R environment.
# pass
#
# def setup_r_profile(self, context):
# # New
# pass
#
# def setup_r_environ(self):
# # New
# pass
11 changes: 7 additions & 4 deletions renv/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import subprocess as sp
from shutil import rmtree


def get_r_path():
"""
Get current R installed path in Linux
Expand Down Expand Up @@ -33,17 +34,18 @@ def get_user_home_dir():
sp_out = sp.run(["echo $HOME"], shell=True, stdout=sp.PIPE, encoding="utf8")
grabear marked this conversation as resolved.
Show resolved Hide resolved
return sp_out.stdout.strip()

def get_beri_path(has_root_access=False):

def get_renv_path(has_root_access=False):
"""
Get the default R environment path
# TODO make this function cross-platform
:param has_root_access: whether user has root access in Linux.
:return: path to beRi_envs, inclusive.
:return: path to .renv, inclusive.
"""
if has_root_access:
return os.path.join(get_r_installed_root(), "beRi_envs")
return os.path.join(get_r_installed_root(), ".renv")
else:
return os.path.join(get_user_home_dir(), "beRi_envs")
return os.path.join(get_user_home_dir(), ".renv")


def create_directory(directory, clear=False):
Expand All @@ -65,6 +67,7 @@ def create_directory(directory, clear=False):
else:
os.makedirs(directory)


def create_symlink(src, dst, subfolders=[]):
"""
Create symlink in the dst folder from the src folder.
Expand Down